Windows03探析.pptVIP

  1. 1、本文档共73页,可阅读全部内容。
  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文档。上传文档
查看更多
马洪兵 清华大学电子工程系 hbma@tsinghua.edu.cn,;第三讲 Windows操作系统的 存储管理(上);Windows的内存管理;内存管理器的组成部分;工作集管理器(MmWorkingSetManager) :当空闲内存低于某一界限时,便启动所有的内存管理策略,如:工作集的修整、老化和已修改页面的写入等。 进程/堆栈交换器(KeSwapProcessOrStack) :完成进程和内核线程堆栈的换入和换出操作。 已修改页面写入器(MiModifiedPageWriter):将修改链表上的“脏”页写回到适当的页文件。;映射页面写入器(MiMappedPageWriter):将映射文件中脏页写回磁盘。 废弃段线程(MiDereferenceSegmentThread):负责系统高速缓存和页面文件的扩大和缩小。 零页线程(MmZeroPageThread):将空闲链表中的页面清零。;地址空间布局;地址空间布局;地址空间布局;地址空间布局;地址空间布局;地址空间布局;地址转换机制;地址转换机制; . . .;快表TLB;缺页处理;缺页处理;缺页处理;缺页处理;缺页处理;页面调入I/O;页文件;内存分配方式;以页为单位的虚拟内存分配方法 适合于管理大型对象数据结构,尤其是动态或稀疏分配的。对于以页为单位的虚拟内存,Windows 采用两阶段内存分配方法:保留内存和提交内存。 应用程序可以首先保留地址空间,然后向此地址空间提交物理页面。VirtualAlloc和VirtualAllocEx函数实现这些功能。 保留地址空间是为线程将来使用所保留的一块虚拟地址。在已保留的区域中,提交页面必须指出将物理存储器提交到何处以及提交多少。提交页面在访问时会转变为物理内存中的有效页面。 VirtualFree或VirtualFreeEx函数回收页面或释放地址空间。;使用 VirtualAlloc 可以在用户地址空间中保留或者提交指定地址和大小的一段地址空间。那么系统如何知道指定的这段地址空间是不是已经被分配(保留或者提交)。对于指定地址空间是否已经被提交了物理内存,可以通过页目录和页表来判断,不过这样做很麻烦。而对于指定地址空间是否已经被保留,通过页目录和页表没有办法判断。 Windows中使用 VAD 来解决这个问题。 ;虚拟地址描述符;Windows的进程结构;通过区域对象服务提供的大数据流和内存共享服务 区域对象(section object)在Win32子系统中被称之为文件映射对象,表示可以被两个或更多进程所共享的内存块。区域对象也可以基于页文件。 CreateFileMapping创建区域对象 MapViewOfFile函数映射区域对象的一部分(叫做区域视图),并指定映射范围 当两个进程对同一区域对象建立视图时,就发生了对该区域对象的共享。 ;区域对象(section object);用户空间内存分配方式;系统内存分配;系统有两种非分页缓冲池:一种在一般情况下使用,另一种小型的(4页)缓冲池在非分页缓冲池已满并且调用者不能允许分配失败时,紧急使用。 单处理机系统有三个分页缓冲池;多处理机系统有五个。;工作集;工作集大小的变化:进程开始执行后,随着访问新页面逐步建立较稳定的工作集。当内存访问的局部性区域的位置大致稳定时,工作集大小也大致稳定;局部性区域的位置改变时,工作集快速扩张和收缩过渡到下一个稳定值。;取页策略:内存管理器利用请求式页面调度算法以及簇(集群)方式将页面装入内存 置页策略:选择页框应使CPU内存高速缓存不必要的震荡最小 换页策略 在多处理器系统中,Windows 2000/XP/2003采用了局部先进先出置换策略。而在单处理器系统中,其实现更接近于最近最少使用策略(LRU)(称为“轮转算法)。;系统工作集;当操作系统需要提供一个物理页给应用程序,来满足应用程序要求的时候,将遇到一个问题,系统如何知道哪些物理页已经被使用,哪些物理页没有被使用。 页框号数据库( Page Frame Number DataBase )和它的相关结构用来解决这个问题。 ;对于每一个物理页,操作系统使用一个24字节长的结构MMPFN来保存它的相关信息。页框号数据库就是一个 MMPFN 数组,这个数组的每一项对应一个物理页,例如数组第0项,对应物理页0,也就是页框号为0的物理页框。 Windows把页框号数据库的首地址保存在全局变量 MmPfnDatabase 中。 ;物理内存管理;物理内存管理;物理内存管理;物理内存管理;;物理内存管理; 进程 工作集;Windows的外存管理;盘——一种物理存储设备。 扇区——可寻址的大小固定的块。 分区——盘上连续扇区的集合。 简单卷——代表文件系统驱动程序作为一个独

文档评论(0)

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

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

1亿VIP精品文档

相关文档