页面置换算法补充

参考书籍:左万利《计算机操作系统教程(第4版)》


6.页面置换算法

6.6 最近不用的先淘汰(Not Used Recently)

淘汰策略:淘汰最近一段时间未用到的页面。

实现每页增加一个访问标志访问置1,定时清0,淘汰时取标志为0的。

① 5个页框内:2,3,5,6,4.

② 假如再访问到 2 号页时,设定的时间如20 ms到了,页框内访问标志全部清0。

③ 这时接着访问5,6,4,5,6。这些都是页框内存在的页面,没有缺页,于是5,6,4的访问标志全置1

④ 当访问到 8 号页时,发生缺页,而此时设定的 20ms 未到,就选择所有访问标志位为0的页面(2号或3号)任意一个淘汰。

如图,该算法的页故障率(缺页率)与LRU算法(最近最少使用算法)相近。

6.7 最不经常使用的先淘汰(least frequently used,LFU)

淘汰策略:淘汰使用次数最少的页面。

实现:记数器,调入清0,访问增1,淘汰最小者。

依据:活跃访问页面应有较大的访问次数

缺陷:(1)前期使用多的页面,后期即使不使用,也难以换出。

           (2)刚调入的页面引用肯定少,被换出的可能最大。

6.8 最频繁使用的先淘汰(most frequently used,MFU)

淘汰策略:淘汰使用次数最多的页面。

实现:记数器,调入清0,访问增1,淘汰记数器中最大者。

依据:使用多的可能已经用完了。

缺陷:程序有些成分是在整个程序运行中都使用的,使用次数肯定高。如公共子程序。

6.9 二次机会算法(second chance)

淘汰策略:淘汰装入最久最近未被访问的页面。

实现:采用拉链数据结构。

① 一开始分配8个页框,其中存在页面:6,3,4,8,5,9,0,1.

② 假设之后就到了设定的时钟周期,就将所有页面的访问位清0.

③ 清0以后,在下一个时钟周期内,发生缺页之前访问过6,3,5,1.

④ 假设之后访问 2 号页面,发生缺页。则执行:

  1. 检查链头,若访问位为1,则将其置0,并放入链尾。
  2. 直到链头的访问位为0,将其淘汰,新进入的页面 2 放入链尾,且访问位置1。

为什么被叫为二次机会?

假设页框内所有页面访问位都为1,且此时还在时间周期内发生了缺页,那么就会进行两轮:

  • 第一轮:所有的页都访问位置0,同时放在链尾。
  • 第二轮:链头肯定是访问位为 0 的页面。

(第一遍找不到的话,第二次肯定能找到)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值