操作系统的11种页面置换算法

总结

操作系统页面置换算法有如下算法

  1. 最佳置换算法OPT(Optimal):操作系统缓冲管理器只有一个策略,就是将未来不使用或最少使用的块置换处内存就行,能达到这种要求的算法是最佳置换算法OPT(Optimal),这种算法无法实现,因为无法预测未来
  2. 先进先出算法FIFO(First Input First Output)
  3. 最近最久未使用LRU(Least Recently Used)置换算法:考虑时间
  4. Clock算法:是LRU的近似实现,使用一个循环队列,一个指针一直往下循环,指到一个附加位为0的则将其置换,遇到附加位为1则将其置为0。附加位为1表示最近访问过,一般访问操作会将附加位变为1
  5. 改进型Clock算法:使用两个附加位(访问位,修改位),最容易被置换出去的是没有被访问也没有被修改的页面即(0, 0),然后是没有被访问但被修改的页面即(0, 1),然后是被访问但没有被修改的页面即(1, 0),然后是被访问也被修改的页面即(1,1),因为被修改的页面需要写入磁盘,而没有被修改的页面可以直接替换,直接替换最省时间
  6. 最少使用LFU(Least frequently used)置换算法:考虑频次,维持一个计数器,每访问一次计时器加一,redis的实现是计数器值最高256,而且不是每访问一次就加一,而是按照概率加1,计数器值越大概率越低
  7. 老化算法:是LFU的改进版,由于一个页面可能使用很多次突然不用了,这时它的计数器值很大,难以将其移除,所以有老化算法,随着时间推移,计数器值会越来越小
  8. 最近未使用NRU(Not Recently Used)置换算法:只有使用过和未使用过的区别,和LRU非常类似
  9. 第二次机会算法:FIFO队列的第二次机会算法,在先进先出队列中的节点加上一个附加位,如果附加位为1但是到了队头,此时也不将其置换出去,而是再次放入队尾并将附加为置为0,如果附加为0则到了队头,则直接将其置换
  10. 工作集算法:工作集是指一个进程当前正在使用的页面的集合,所以使用该算法每次读取页面直接读取,整个工作集而不是以页面为单位读取,这样可以预防以后的缺页中断,但是会浪费一些空间,因为进程可能用过工作集的一些页面后不再使用它们
  11. 工作集时钟算法:将Clock算法里面替换的单位从页面变成工作集,一次替换多个页面
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lolxxs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值