- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WindowsCE操作系统内存管理(MMU,虚拟内存)总结
中科院上海微系统与信息技术研究所
PAGE4 / NUMPAGES4
【原创】Windows CE操作系统内存管理总结
0 概述
Windows CE是一个32位的嵌入式操作系统,因此运行在Windows CE上的应用程序具有32位的寻址能力。
内存管理:
1 物理内存
RAM为操作系统和应用程序提供运行和缓冲空间。
易失性存储器根据工作原理不同分为两种:静态读写存储器SRAM,SRAM基于触发器原理;动态读写寄存器DRAM,DRAM是基于分布电容存储器原理。
DRAM 是动态存储器(Dynamic RAM)的缩写,SDRAM 是英文 Synchronous DRAM 的缩写,译成中文就是同步动态存储器。从技术角度上讲,同步动态存储器(SDRAM)是在现有的标准
动态存储器中加入同步控制逻辑(一个状态机),利用一个单一的系统时钟同步所有的地址数
据和控制信号。使用 SDRAM 不但能提高系统表现,还能简化设计、提供高速的数据传输。在功能上,它类似常规的 DRAM,且也需时钟进行刷新。可以说,SDRAM 是一种改善了结构的增强型 DRAM。
ROM通常用来存储程序,其内容可断电永久保存,它通常包括操作系统映像本身和组成操作系统的一些其他文件。
ROM,只读存储器。可编程的ROM有:
紫外线可擦除型ROM:EPROM,需要用紫外线擦出已写入的程序,必须脱机固化,不能在线改写
电可擦除型ROM:E2PROM,被广泛使用
Flash与ROM相比最大的优点是可擦写,这样它既可以用来存储操作系统本身,也可以用来存储后来安装的程序。从结构上来说,Flash主要有AND,NAND,NOR及DiNOR等。
NAND与NOR对比:
Windows CE最大支持512MB的物理内存。
2 虚拟内存
为什么要使用虚拟内存?
ROM DLL vs RAM DLL?
Windows XP的每个进程独享4GB虚拟地址空间,而Windows CE中所有的进程共享一个4GB的虚拟地址空间。
Windows CE 操作系统支持两种页大小:1KB和4KB。在Windows CE中,与桌面 Windows 一样,虚拟内存的申请分为保留(reserve)和提交(commit)两个过程,虚拟地址空间的保留是以64KB为边界的,也就是说,任何一次虚拟内存申请都会返回一个64KB的整数倍的地址,但是把虚拟内存提交到物理内存是以页为粒度的。
管理虚拟内存的硬件是内存管理单元(MMU,Memory Management Unit)。MMU负责把虚拟地址应为到物??地址,并且提供一定的内存保护。
特点:
(1)每个 Slot 占 32MB,Slot 的编号从 0开始
(2)Slot 0 到 Slot 32 对应的虚拟地址是 0x0000 0000到 0x41FF FFFF,它们用于存放进程的虚拟地址空间。Slot 0与Slot 1基本是在一起的。其中Slot 0用于映射当前在处理器上执行的进程。Slot1由 XIP的DLL代码使用。Slot 2到Slot 32对应Windows CE中每个进程的32MB虚拟地址空间。
(3)Slot 33到Slot 63对应的虚拟地址空间是0x4200 0000到0x7FFF FFFF。这块虚拟内存是由所有进程共享的,由于每个进程只有32MB 的虚拟地址空间,如果应用程序希望使用更多的虚拟内存,就可以在这个范围内申请。这个范围包括对象存储和内存映射文件。此范围内的最后一个Slot从0x7E00 0000到0x 7FFFF FFFF,也就是Slot 63,用来存放纯资源DLL。
(4)虚拟地址0x8000 0000到0x9FFF FFFF用来静态映射所有的物理地址,也就是说Windows CE会把所有的物理内存一比一的映射到这段虚拟地址上。一共512MB。
(5)虚拟地址 0xA000 0000到 0xBFFF FFFF会重复映射所有的物理内存。在驱动程序中我们如果需要直接访问设备I/O或寄存器【即不使用缓存】,通常使用0xA000 0000物理地址。
(6)物理内存被映射到内核空间之后,Windows CE内核中访问物理内存就变得相对简单。如果需要访问某个物理内存地址,只需要把该物理内存地址加上0x8000 0000或者0xA000 0000就可以了。当然这种简便的方式只能由Windows CE内核使用。
(7)Slot97是 Windows CE的核心进程NK.exe专用的。
(8)从0xE000 0000到0xFFFF FFFF这一段最高的地址是内核使用的地址空间。对于不同的处理器体系结构这里保存着不同的东西。通常会放置一些供虚拟内存用的页表、中断向量表等内核使用的数据结构。
进程申请虚拟内存是从低地址往高地址增长的,DL
您可能关注的文档
- vmwareTools虚拟机工具安装(图文以RedHat90为例.doc
- VMwarevSphere41虚拟化学习手册5虚拟交换机vSwitch.doc
- VmwareFusion5安装教程(mac虚拟机装win7).docx
- VmwarevSphere50系列教程之五存储简介及配置openfiler存储.docx
- VLAN以太交换机的硬件设计.doc
- VMwareWorkstation10安装+CentOS65安装图文教程.doc
- VMware80虚拟机安装教程(超详细).doc
- VMVsphereESXI550的安装及RAID的配置.docx
- VNUC用户手册广州数控系列.doc
- VP-SB-1012-03-00Agilent1100高效液相色谱仪.doc
文档评论(0)