页面置换算法

页面置换算法

  • 功能:需要调入页面时,选择内存中哪个物理页面被置换。称为replacement policy。
  • 目标:把未来不再使用的或短期内较少使用的页面调出,通常只能在局部性原理指导下依据过去的统计数据进行预测;
  • 页面锁定(frame locking):必须常驻内存的OS关键部分时间关键(time-critical)的应用进程。实现方法为在页表中加上锁定标志位(lock bit)。

几种算法:

  • 最佳页面算法(OPT)——选择“未来不再使用的”或“在离当前最远位置上出现的”页面被置换。
PS :是一种理想情况,实际执行中是 无法预知 的,因而不能实现。
       可用作其他算法 性能评价的依据
  • 先进先出页面置换算法(FIFO)——选择建立最早的页面被置换。可以通过链表来表示各页的建立时间先后。

         特点性能较差。较早调入的页往往是经常被访问的页,这些页在FIFO算法下被反复调入和调出。并且有Belady现象。

       Belady现象:采用FIFO算法时,如果对一个进程未分配它所要求的全部页面,有时就会出现分配的页面数增多缺页率反而提高的异常现象。
      Belady现象的描述:一个进程P要访问M个页,OS分配N个内存页面给进程P;对一个访问序列S,发生缺页次数为PE(S,N)。当N增大时,PE(S, N)时而增大,时而减小。

      Belady现象的原因:FIFO算法的置换特征与进程访问内存的动态特征是矛盾的,即被置换的页面并不是进程不会访问的

例:有一虚拟存储系统,采用先进先出的页面淘汰算法。在内存中为每个进程分配3块。进程执行时使用页号的顺序为 4 3 2 1 4 3 5 4 3 2 1 5
(1) 该进程运行时总共出现几次缺页。
(2) 若每个进程在内存有4块,又将产生几次缺页。
(3) 如何解释所出现的现象。

(1)m=3


(2)、m=4


m=3时,缺页中断9次

m=4时,缺页中断10次

(3)、FIFO页面淘汰算法会产生异常现象(Belady现象),即:当分配给进程的物理页面数增加时,缺页次数反而增加

  • 最近最久未使用页面置换算法(LRU)——选择最后一次访问时间距离当前时间最长的一页并淘汰之。即淘汰没有使用的时间最长的页。
        特点 :局部性原理的合理近似,性能接近最佳置换(OPT)算法。 实现代价很高(软件方法或硬件方法)
  • 轮转算法(clock)(也称最近未使用算法(NRU, Not Recently Used))
  • 最不经常使用(LFU)——选择到当前时间为止被访问次数最少的页面被置换;

例:某程序在内存中分配三个块,访问页的走向为4,3,2,1,4,3,5,4,3,2,1,5,按FIFO、 LRU、OPT算法分别计算缺页次数。

   假设开始时所有页均不在内存。




eg:某程序在内存中分配四个块,访问页的走向为4,3,2,1,4,3,5,4,3,2,1,5,按LRU、OPT算法分别计算缺页次数
假设开始时所有页均不在内存


  • 4
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

DiuDiu_yang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值