基于WRK的操作系统课程设计.docVIP

  1. 1、本文档共15页,可阅读全部内容。
  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文档。上传文档
查看更多
基于WRK的操作系统课程设计

教育部-微软精品课程建设项目 基于WRK的操作系统 课程设计 工作集管理初探 西北工业大学计算机学院 简介 论述了工作集的基本概念,并简要介绍了Windows中工作集管理的相关内容。具体讲解了Windows中的工作集实现中的细节,包括:内存页的可能状态及意义,页状态的链表,WRK中使用的数据结构和用途。 小组成员 王书航 王欢 胡娜 工作集管理初探 “工作集”,是指在物理内存中驻留的虚拟页面的子集。有两种类型的工作集:进程工作集和系统工作集。 每个进程开始时,都有相同的缺省的工作集最大值和最小值。这些值,是在系统初始化时,严格地按照物理内存的大小计算出来的。 进程在建立时,进程工作集总为空的,CreateProcess等在建立进程过程中有责任初始化进程工作集。它会分配一个物理页面,然后调用MiInitializeWorkingSetList初始化进程工作集。 当缺页错误发生时,进程的工作集限制和系统空闲内存的数量都会被检查。如果条件允许,内存管理器允许进程扩大它的工作集到最大值,如果有足够的有效空闲页,甚至可以超过最大值(即所谓的峰值)。但是,如果内存紧张,当缺页错误发生时,Windows 2000 是置换工作集中的页面,而不是增加工作集中的页面。 尽管 Windows 2000 通过将修改页面写到磁盘来尽量保持有效内存的数量,但当修改页面的产生速率很高时,为了满足内存请求,需要更多内存。因此,当物理内存变得很低时,即 MmAvailablePages 小于 MmMinimumFreePages 时,运行在平衡集管理器系统线程的上下文中的,名为“工作集管理器”的例程,会被调用,自动地将工作集修剪,以增加系统有效空闲内存的数量。应用程序初始化后,也可以用Win32 的 SetProcessWorkingSetSize 函数,自己修剪自身进程的工作集的大小。 工作集管理器检查有效内存,并决定哪个工作集需要被修剪。如果内存充足,工作集管理器计算当需要时有多少页面可以从工作集中删除。如果需要修剪工作集,它首先考虑超过了最小值设置的工作集。工作集管理器还自动调整检查工作集的速率,并将预备要被修剪工作集的进程按照一个最佳的顺序排序。例如,已经长时间空闲的较大的进程在经常运行的较小的进程之前,运行前台应用程序的进程在最后等。 当进程工作集超过最小值,工作集管理器从工作集中删除页面,使页面有效,可以给其它进程使用。如果系统空闲内存的数量仍然太低,工作集管理器继续从进程的工作集删除页面,直到系统上空闲页面数达到最小值,也就是不用再增加空闲页面数了。 如果一个进程自从上次被修剪后,产生了比较多的缺页错误,它可以免除修剪。原因是如果工作集管理器犯了错误,将正在使用的页面修剪掉了,它不可以再从这个进程修剪任何的页面,直到下一个修剪周期(6秒以后)。 在单处理器系统和在多处理器系统上,决定哪些页面从工作集中删除的算法是不同的。在单处理器系统上,工作集管理器删除最近没有被访问的页面。它通过检查硬件 PTE 中的访问标志位,判断该页是否被访问过。如果标志位置零,说明页面已经老化,即标识自从上次工作集修剪扫描后,页面没有被引用的一个计数器增加。在迟些时候,页面的年龄会被用来在工作集中查找删除的候选页面。 如果硬件 PTE 的访问标志位被设置了,工作集管理器将它置零,并继续检查工作集中的下一页。通过这个方法,下次工作集管理器检查这一页时,如果发现访问标志位仍然是零,它知道这页自从上次被检查后就没有被访问过。这个扫描工作在工作集中从头到尾进行,直到删除了需要的页面数或者是扫描返回到起点。下一次修剪工作集时,工作集管理器在它上次离开的地方继续扫描。 根据页帧的不同状态,每一个没有被使用的页帧在下面的5个不同的链表上: ???????坏页链表(bad page list):存在校验错误的页帧 ????? 空闲链表(free page list):这些页可以立即重新使用,但是没有被初始化为0 ?????? Zeroed list:这些页可以立即重新使用 ?????? Modified list:这些页帧没有引用了,但是在把它们的内容写到磁盘之前不能把这些页回收 Modified Page Writer/Mapped Page Writer通常执行异步操作将Modified pages 写到磁盘上。 Standby list:包含那些已经从进程工作集中移除的页帧。 VMM会基于不同进程的访问内存特点尽量减少分配给某一个进程的页帧数目,某个瞬间分配给进程的页总数称为该进程的工作集。NT VMM通过尽量缩减进程的工作集来提高物理内存的使

文档评论(0)

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

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

1亿VIP精品文档

相关文档