WindowsCE操作系统内存管理(MMU,虚拟内存)总结.docx

WindowsCE操作系统内存管理(MMU,虚拟内存)总结.docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档