网站大量收购独家精品文档,联系QQ:2885784924

【原创】windows ce操作系统内存管理(mmu,虚拟内存)总结..docxVIP

【原创】windows ce操作系统内存管理(mmu,虚拟内存)总结..docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【原创】windows ce操作系统内存管理(mmu,虚拟内存)总结.

【原创】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这一段最高的地址是内核使用的地址空间。对于不同的处理器体系结构这里保存着不同的东西。通常会放置一些供虚拟内存用的页表、中断向量表等内核使用的数据结构。进程申请虚拟内存是从低地址往高地址增长的,DLL 代码和数据的增长是从高地址往低地址增长的。虚拟内存的申请是以64KB为边界的,这意味着每个DLL都要占用至少64KB虚拟地址空间。也就是说理论上每个进程

文档评论(0)

jcc001 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档