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

深圳职业技术学院windowsce嵌入式系统开发课程课件内存的管理与分配.pptVIP

深圳职业技术学院windowsce嵌入式系统开发课程课件内存的管理与分配.ppt

  1. 1、本文档共24页,可阅读全部内容。
  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文档。上传文档
查看更多
项目6:内存分配-PDA的内存管理 (1) 本节课程主要知识点 Windows CE5.0的内存管理 Windows CE5.0的内存结构 进程地址空间结构 重点和难点 重点 内存管理的基本概念 难点 虚拟内存的使用 Windows CE5.0的内存管理 内存管理 内存管理是操作系统中最重要的功能之一,尤其是在嵌入式系统中更为重要。 内存管理的目的是为了充分利用内存,尽可能方便用户使用内存。 解决程序空间比实际内存空间大的问题。 Windows CE5.0的内存管理 Windows CE5.0内存管理是在Windows XP内存管理的基础上优化而成的。 内存管理采用虚拟内存方式来管理内存的使用。 物理内存 Windows CE5.0最大支持512MB的物理内存。 物理内存包括RAM、ROM和Flash 存储器。 操作系统的映像和相关文件一般存储在Flash中。 虚拟内存 Windows CE5.0支持4GB的虚拟内存。 管理虚拟内存的硬件是内存管理单元MMU,负责把虚拟地址映射到内存的物理地址。 整个4GB虚拟地址空间划分为两部分,地址0x8000 0000以上的2G空间为内核使用部分,0x8000 0000以下的2G空间为应用程序使用部分。 内核空间与用户空间 内核空间(地址0x8000 0000以上) 运行于核心态的进程使用 静态映射物理地址 用户空间(地址0x8000 0000以下) 划分为64个Slots,每一个Slot有32MB 大多数情况下,动态映射物理地址 物理内存映射虚拟内存 Windows CE5.0的内存结构 Windows CE5.0的内存结构 内核与用户空间的地址分配 Windows XP 内存结构 Windows CE 内存结构 虚拟内存中的Slots 2 Gigabytes Divided into 64 32 MByte Slots 31 slots for LMA 31 slots for applications 2 slots for current application Slot 当一个应用程序启动时,内核为这个程序选择一个空闲的槽(Slot),并且加载所有的代码、资源,并分配堆栈,加载DLL等。 当这个进程得到CPU使用权时,它的整个地址空间被内核映射到Slot 0,也就是当前进程使用的地址空间,然后开始运行。 Slot 0 每个进程在执行前都要映射到Slot 0。 由于进程使用的所有DLL可能来自不同的Slot,为避免所使用的DLL在映射到Slot 0中出现地址空间冲突的现象,内核的加载器在加载DLL时会查找所有槽中加载的DLL的地址,保证在映射到Slot 0时不会发生地址冲突现象。 Slot 2 – Slot 8 Slot2:通常被Filesys.exe占用 Slot3:通常被shell.exe占用 Slot4:通常被device.exe占用 Slot5:通常被gwes.exe占用 Slot6:通常被ceemulsrv.exe占用 Slot7:通常被explorer.exe占用 Slot8:通常被services.exe占用 Slot中的内存分配 进程最低部的64KB作为保留区域。 代码段从0x0001 0000开始加载,内核为代码段分配足够的虚拟地址空间。 为只读数据和可读/可写数据分配空间。 为资源数据分配空间。 为默认堆和栈分配空间。 Slot中的DLL加载 非XIP DLL从进程最高端地址向下开始加载。 非XIP DLL的加载按如下规则:内核先检查要加载的DLL是否已经被其它进程加载,如果加载过,就做一个地址的重定位。避免系统内多次加载相同DLL。如果没有加载过,就按照从槽的高地址到槽的低地址的顺序查找空闲的地址空间。然后分配足够的地址空间用于加载DLL。 进程地址空间结构 进程地址空间结构 Windows CE5.0同以前版本的Windows CE操作系统在进程地址空间上有所不同。 以前的Windows CE把XIP DLL也加载到进程的32MB地址空间中。 Windows CE5.0把XIP DLL单独加载到Slot 1中,这样对于每个进程来说,它总的地址空间就大了一倍,达到64MB。 进程的地址空间 不同CPU的内存结构 不同的CPU内存管理方法也不同。 对于MIPS和SHX系列CPU来说,物理地址映射是由CPU完成的,Windows CE内核可以直接访问512MB的物理内存。 对于x86系列和ARM系列的CPU来说,在内核启动过程中它会将现有物理内存地址全部映射到0x8000 0000以上的虚拟地址空间中供内核以后使用。 * * 2 GB User 512 MB Uncached 512 MB Cached 32 MB Flash Physical

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档