预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共19页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

5.3.3页面置换策略页面置换策略中基本概念驻留集:进程的合法页集合访问串:进程访问虚空间的地址踪迹。页面置换策略分成两类:驻留集大小固定的局部置换策略FIFOOPTLRUCLOCK驻留集大小可变的全局置换策略WSSWS(一)FIFO置换算法(替换最早进入的页)FIFO方法的特点:实现方便。不需要额外硬件。效果不好,有Belady奇异。(二)OPT(Optimalreplacement)OPT方法特点:最优的固定驻留集大小置换策略。不可实现。(三)LRU(LeastRecentlyUsed)LRU策略是一种栈算法。LRU策略的特点:要硬件配合,实现费用高,但效果适中。实现方法之一:给每个页帧设一个计数器,每访问一页,对应页帧计数清0,其余页帧计数加1,淘汰计数最大的页帧。(四)时钟页面置换(CLOCK)算法基于LRU的思想硬件在页面被访问时设置页表项中的访问位淘汰表针指向的且访问位是0的页面,若页面访问位置上,则清除访问位,表针至下一页。实用的页面置换算法。(五)最近未使用(NRU,兼顾FIFO和LRU策略)为页帧在页表项中增加一位使用位,硬件每访存一次即将对应页的使用位置1,操作系统页面管理程序定时将所有使用位清0。淘汰时任选一个使用位为0(表示OS清0周期内没被使用过)的页。操作系统选择淘汰页时,尽量避免选被修改过的页。因此,选择淘汰页次序:使用位修改位00011011程序行态:指程序访存特性局部性行态:一段时间内程序访存有局部性,这些与局部性相关的页面集合称为工作集.阶段转换行态:从一个工作集向另一个工作集过渡是突然的.全局置换引入原因:驻留集大小<工作集大小=>抖动;驻留集大小>工作集大小=>浪费;工作集是变化的。应随着程序访问虚存的工作集大小变化而改变驻留集大小。若驻留集中的某页有△个访问间隔没被访问则将其淘汰。举例:取△=5,访问串为实现:每一页面设一计数器。每访存一次,将所有其它页计数器加1,所访存的页面计数器清0,淘汰计数器值等于△的页面。每访问一页,将当前硬时钟值记录在页表项中,操作系统定时(以T为周期)检查驻留集页表项的时钟值,若:当前时钟值-页表项中时钟值>△,则淘汰之。实用操作系统:动态驻留集SWS+淘汰页数据延迟清除。设立两个队列:自由链表和修改链表。定时作页淘汰(SWS):淘汰时不立即末去页中数据,根据页面修改否挂入自由链/修改链,修改链过长时,回写页面后改挂到自由链中。若pagingin要用空页时,选自由链的第一页帧,这时页中数据被覆盖。若在自由链/修改链中的页面再次被访问时,则将该页从链中摘除,使该页又能通过页表项访问到。综合练习:在请求分页虚存管理系统中:页面大小为212B,主存的访问时间是100ns,快表的访问时间是10ns,换入页面的平均时间为100,000,000ns(该时间已经包含页表修改及将页表项加入快表),当进程执行时,依次访问虚地址:0x236B、0x1A65、0x2575,问各需要多少访问时间?0x1A65的物理地址是多少(若采用固定驻留集LRU算法,驻留集大小2)?(假设快表初始为空,变址先访问快表)