《嵌入式操作系统原理.pdf》由会员分享,可在线阅读,更多相关《嵌入式操作系统原理.pdf(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第五章 存储管理嵌入式操作系统原理Windows CE存储管理 对象存储(Object Store)文件系统(File System)数据库(Database)注册表(Registry)文件压缩(File Compression)存储管理器(Storage Manager)5.1 对象存储 对象存储的作用 对象存储完成的工作 存储机制 容量限制 对象标志符(CEOID)对象存储容量5.1.1 对象存储的作用 对象存储为应用程序及其相关数据提供了持久稳定的存储。(断电保护)对象存储需要非易失性(nonvolatile)RAM作为物理介质。5.1.2 对象存储完成的工作 管理堆栈(stack)和内
2、存堆(memory heap)在需要时压缩和解压缩文件 无缝连接基于ROM的应用程序和基于RAM的数据5.1.3 存储机制 当向对象存储写入数据时发生电源中断的情况,Windows CE会通过各种手段保证对象存储不被破坏5.1.4 容量限制 RAM文件系统最大256M,单个文件限32M。对象存储的个数可达4,000,000。文件最大4GB,通过压缩、不为未使用到的文件部分分配内存的方法实现。5.1.5 对象标志符(CEOID)对象存储的对象可以是:注册表中的一个键,注册表中的一个值,一个文件等等 每个对象分配唯一的CEOID,用于访问对象存储中的对象5.1.6 对象存储容量 最大容量为256M
3、B(可压缩)可修改,用于定义应用程序及其相关数据的存储量 在冷启动时设置 调用系统函数SetSystemMemoryDivision 控制面板5.2 文件系统 文件系统的概念 Windows CE文件系统概述 内部文件系统 FAT文件系统 BinFS文件系统 可安装的文件系统 文件系统过滤器5.2.1 文件系统的概念 文件系统提供对存储设备的高效访问 文件系统将存储设备结构化以便读写。常用的文件系统格式5.2.2 Windows CE文件系统概述 提供三种文件系统 可根据设备需要创建文件系统 使用标准Win32 API访问 使用句柄访问文件 外部存储设备可分区5.2.3 内部文件系统 内部文件
4、系统控制ROM的访问,也在RAM中提供对象存储中的文件存储。两种内部文件系统供选择:RAM和ROM文件系统 单独ROM文件系统RAM和ROM文件系统 在提供ROM访问的同时提供在对象存储中的文件存储。目标设备需为RAM持续供电以保留对象存储的内容。对象存储是系统的根目录,除了外部文件系统之外所有数据都存储在对象存储中。ROM中的数据可通过Windows目录访问单独ROM文件系统 不允许应用程序在对象存储中放置文件。ROM中的数据可通过Windows目录访问 外部文件系统以目录的形式存在于根目录下 可选择外部文件系统作为根目录5.2.4 FAT文件系统 file allocation table
5、(FAT)文件系统适用于所有外部存储卡,包括ATA卡、线性flash卡以及PC卡 卡可被分区,每个分区可作为一个FAT卷挂载,放置在根目录的一个文件夹下。5.2.5 BinFS文件系统 Binary ROM image file system(BinFS)用于读取由Romimage.exe产生的二进制文件格式。.bin文件格式将数据按特定的分段组织5.2.6 CD/UDFS文件系统 Compact Disc File System(CDFS)和Universal Disc File System(UDFS)用于读取CD,DVD,CD-ROM。使用ATAPI块驱动程序定位和音频视频回放5.2.7
6、 可安装的文件系统 文件系统驱动程序的创建 文件系统驱动程序的加载 文件系统驱动程序管理器文件系统驱动程序的创建 函数映射 Windows CE为FSD的开发提供模板 保存所需信息的数据结构文件系统驱动程序的加载1)插入PC卡。2)该卡驱动程序读取PC卡驱动注册表入口,它定义了该卡要使用的FSD的名称。3)发送给存储管理器一条通知。4)存储管理器安装适当的分区驱动程序,然后为分区装载相应的文件系统。5)FSD管理器调用MyFSD.dll的输出函数MyFSD_MountDisk。6)当调用MyFSD_UnmountDisk时,设备上的所有卷会被注销。文件系统驱动程序管理器 负责管理与系统中所有可
7、安装文件系统的交互。屏蔽不同文件系统的接口差异,向用户提供标准的函数接口。创建文件句柄,注册卷,安装必要的函数,将应用程序的调用映射到安装的函数上。5.2.8 文件系统过滤器 以DLL形式存在,入口点映射到标准文件系统函数上(如CreateFile)。位于文件系统上层,截取文件系统调用,可利用这一机制加密、压缩或病毒扫描所有fsdmgr加载的文件系统。是轻量级的FSD,只是文件系统过滤器导出FSD_HookVolume和FSD_UnhookVolume,文件系统驱动程序导出FSD_MountDisk和FSD_UnmountDisk。两者都由文件系统驱动程序管理器加载。5.3 数据库 数据库的作
8、用 CEDB EDB5.3.1 数据库的作用 数据库提供对记录的存储、访问和分类。Windows CE database(CEDB)针对小型高效存储而设计得精简平实。数据操作在对象存储或数据库卷中进行,以防数据丢失。默认数据库为CEDB,也支持嵌入式数据库(EDB)。5.3.2 CEDB 支持所有存储设备上的数据库,包括PC卡和可安装的文件系统。每CEDB数据库包含最多CEDB_MAXSORTORDER个类索引和若干记录。记录的最大量定义在Windbase.h和Rapi.h中的CEDB_MAXRECORDSIZE常量中。5.3.3 EDB 是CEDB的升级和加强,支持以下功能 Transact
9、ions 供多个用户访问 多种排序顺序,键属性,以及数据库 增强的性能,特别对较大的数据库时。5.4 注册表 注册表的作用 注册表类型 注册表构成5.4.1 注册表的作用 注册表用于存储应用程序、驱动程序、用户参数、以及其他配置信息。注册表由键和值的分级系统构成 四类根键 HKEY_LOCAL_MACHINE 硬件和驱动程序配置数据 HKEY_CURRENT_USER 用户配置数据 HKEY_CLASSES_ROOT OLE和文件类型匹配配置数据 HKEY_USERS 用于所有用户的数据5.4.2 注册表类型 RAM式注册表(RAM-based)在对象存储中保存所有注册表数据 必须为RAM持续
10、供电,断电则丢失数据 用于从不或很少冷启动的设备 蜂窝式注册表(Hive-based)在文件或hive中存储数据,可保持在任何文件系统中,减少了系统冷启动的负担 可支持多用户设置5.4.3 注册表构成 4类根,根下是一系列键,每个键下包含若干子键和入口。指定键或入口的方法:ROOTKeySubkeySubkey or entry5.5 文件压缩 Windows CE自身支持压缩,自动分配10K内存用于解压缩 系统基本配置中不包含压缩,需要用户添加。5.6 存储管理器 存储管理器体系结构 存储管理器装载块设备的步骤 分区驱动程序 分区管理器 块设备驱动程序管理程序5.6.1 存储管理器体系结构
11、存储设备包括硬盘、CD-ROM、CF卡存储器等等。存储管理器由三部分组成,块设备驱动程序管理器、分区管理器和文件系统驱动程序(FSD)管理器。所有对文件的访问以及卷的处理都是经由存储管理器完成的。存储管理器体系结构图5.6.2 存储管理器的装载过程 1 设备管理器负责装载块设备的驱动程序。2 由该设备发出一个通知,告知存储管理器该设备的设备名及其GUID。3 存储管理器根据配置信息为该设备加载分区驱动程序。4 存储管理器枚举该设备上的所有分区。5 存储管理器为每个分区加载文件系统驱动程序。5.6.3 分区驱动程序 对存储设备进行逻辑划分 多个分区可使用不同的文件系统 以动态链接库的形式存在 用
12、户可编写自定义的分区驱动程序5.6.4 分区管理器 存储设备可被划分为多个逻辑分区,每个分区由一组连续的扇区组成。调用分区驱动程序完成对分区的管理、装载和卸载5.6.5 块设备驱动程序管理程序 对设备的读写操作以块为单位 块设备驱动程序向上层输出流接口 块设备驱动程序的装载过程资源 MSDN library Mobile and Embedded Development Embedded Operating System Development Windows CE.NET系统分析及试验教程,陈向群等编著,机械工业出版社,2003 Windows CE.NET内核定制及应用开发,周毓林等编著,电子工业出版社,2005 嵌入式系统的实时概念,【美】Qing Li著,北京航空航天大学出版社,2004