5.3页面替换策略综述.ppt

5.3页面替换策略综述

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

文档评论(0)

1亿VIP精品文档

相关文档