操作系统-页面置换算法

目录

下面介绍几种常用的页面置换算法。

一、最佳置换算法OPT

二、先进先出置换算法FIFO

三、最近最久未使用置换算法LRU

缺页率

例题

OPT

FIFO

LRU

一些其他的页面置换方式:

Clock(循环)置换算法

简单 Clock置换算法

改进型Clock置换算法

最少使用置换算法LFU

页面缓冲算法PBA


在进程运行过程中,若需要访问的物理块不在内存中,就需要通过一定的方式来将页面载入内存,而此时内存很可能已无空闲空间,因此就需要一定的算法来选择内存中要被置换的页面,这种算法就被称为页面置换算法。页面置换算法的好坏,将直接影响系统的性能。

一个好的页面置换算法,应做到减少页面置换的频率。尽量将以后不会用到的或较长时间不会使用的页面给置换出。

下面介绍几种常用的页面置换算法。

一、最佳置换算法OPT

理论上的算法,所选择的被淘汰的页面将是永远不用的,或许是在最长未来时间内不再被访问的页面。由于人们无法预知哪个页面在未来最长时间内不被访问,因此该算法无法实现,但通常用来评价其他算法。

可以保证最少的缺页率。

二、先进先出置换算法FIFO

该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。

只在FIFO算法中出现 belady现象:物理块增加,缺页率升高。

三、最近最久未使用置换算法LRU

该算法以过去预测未来,选择之前最长时间未使用的页面置换。但是由于利用“过去”作为“未来”的近似这一做法并非完全可靠,因此有时会造成缺页率非常高,导致效率会非常低。

缺页率

缺页率指的是访问页面失败次数除以进程页面访问总次数。

设访问成功次次数为S,访问失败次数为F,访问总次数A=S+F,缺页率f=F/A。

例题

假定系统为某进程分配了个物理块,并按以下页面号引用。
4,3,2,1,4,3,5,4,3,2,1,5
·假设物理块初始为空,计算缺页次数和缺页率。

OPT

OPT432143543215
页1432111555211
页243333333555
页34444444444
缺页显示

共缺页中断7次,缺页率为7/12*100%=58.3%

FIFO

FIFO432143543215
页1432143555211
页243214333522
页34321444355
缺页显示

共缺页中断9次,缺页率为9/12*100%=75%

LRU

LRU432143543215
页1432143543215
页243214354321
页34321435432
缺页显示

共缺页中断10次,缺页率为10/12*100%=83.3%

一些其他的页面置换方式:

Clock(循环)置换算法

因LRU要较多硬件支持,故应用中常采用LRU近似算法。

简单 Clock置换算法

只需为每页设置一位访问位,再将内存中所有页面都用连接指针链接成一循环队列。当某页被访问时,置访问位为1。
检查页的访问位,为0换出;为1重置0 ,暂不换出。再按FIFO算法检查下一页面,若到末页访问位仍为1时,返回队首,循环往复。

改进型Clock置换算法

换出时,若页面被修改过,须写回到磁盘;若未被修改,则不必拷回磁盘。
此算法,除考虑页面使用情况外,还考虑置换代价。即未使用过,未修改过为最佳对象。
可通过访问位A和修改位M查看∶
1类(A=0,M=0):最佳淘汰页。√2类(A=0,M=1):次佳淘汰页。
√3类(A=1,M=0):该页可能再被访问。4类(A=1,M=1):最可能再被访问。

最少使用置换算法LFU

在内存中的每个页面设置一个移位寄存器,记录该页面被访问的频率。
该置换算法选择在最近时期使用最少的页面作为淘汰页。

页面缓冲算法PBA

页面缓中算法(PBA)则既可改善分页系统的性能,又可采用一种较简单的置换策略。VAX/VMS操作系统便是使用页面缓冲算法。它采用了前述的可变分配和局部置换方式,置换算法采用的是FIFO。
该算法规定将一个被淘汰的页放入两个链表中的一个,即如果页面未被修改,就将它直接放入空闲链表中;否则,便放入已修改页面的链表中。
 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值