2020-08-08

页面置换算法

我理解的页面置换就是找到内存中并没有真正使用的一些页换出。
不适当的算法可能导致进程发生“抖动”。也就是刚被换出的页很快又要被访问,需要将他重新调入,又需要再选一页调出,而这个刚被调出的页很快又被访问,又需要将他调入,如此频繁的更换页面。
下面介绍几种常见的置换算法。
1.最佳置换算法
该算法是一种理想的算法,它所选择的被淘汰的页面将是以后永不使用的,或者是在最长时间内不再被访问的页面。
因为人们无法预知哪一个页面是未来最长时间不被访问的,所以这是一个理想状态的算法,通常它被用来衡量你所用的算法的效率。
假定系统为某进程分配了三个物理块,并考虑有以下的页面号引用串:7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1,下图是采用最佳置换算法发生的6次页面置换。
当进程访问2时产生缺页,因为在后面的序列中7是在未来最长一段时间内不再被访问,所以这里把7予以淘汰,换位2,其他后面的置换也是如此。 先进先出页面置换算法 该算法是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。该算法实现简单,只需要把一个进程已调入内存的页面按先后次序链接成一个队列,并设置一个指针,使他总是指向最老的页面。 但该算法与进程实际运行的规律不相适应,因为在进程中,像全局变量、常用函数等这些经常被访问,但该算法并不能保证他们不被淘汰。 同样用上面的例子,下图是用先进先出页面置换算法,进行了12次页面置换。 在这里插入图片描述 当进程访问2时,发生缺页,因为7是最先被调入内存的,这里把7换出2调入。其他也是如此。 最近最久未使用(LRU)页面置换算法 它所依据的条件是各个页面调入内存的时间,而页面调入内存的先后并不能反映页面的使用情况。 如下图是用LRU页面置换算法 在这里插入图片描述 同样,因为页面7是最近最久未被访问的,所以把它换出,调入2;当进程第一个对页面3进行访问时,页面1成了最近最久未被访问的,将它换成。在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值