操作系统之页面置换算法

目标:把未来不再使用的或短期内较少使用的页面调出,通常只能在局部性原理指导下依据过去的统计数据进行预测。
常用的页面置换算法有以下几种:
最佳置换算法OPT
先进先出算法FIFO
近期最久未用过算法LRU
CLOCK置换算法NRU
页面缓冲算法PBA
近期最少使用算法LFU

OPT:

根据未来使用情况将未来的近期里不用的页替换出去。

在这里插入图片描述
举例:发生了6次页面置换,9次缺页中断,总访问次数20次,缺页率9/20=45% 。
以上述数据为例,缺页即为物理块中没有下一个页面需要的元素,置换即为物理块中有所需元素。

FIFO

选择内存中驻留最久的页进行淘汰。
在这里插入图片描述
以上述数据为例:
发生了12次页面置换,15次缺页中断,总访问次数20次,缺页率15/20=75% 。

LRU

近期最久未访问过的页,进行置换。
在这里插入图片描述
最久未访问过的页表示的,701进入,2进入,满,选择最久未访问过的,在2之前,7两次未访问,0一次,1无,故淘汰7,继续,0进入,不缺页,3进入时,1比2 多经过一轮,故1淘汰置换,以此类推。

发生了9次页面置换,12次缺页中断,总访问次数20次,缺页率12/20=60% 。

Clock

主要整理一下Clock算法,首先是基础的Clock置换算法,,为每页设置一位访问位,再将内存中的所有页面都通过
在这里插入图片描述
这里要注意一点的是,Clock算法只有一个指针,只能用它表示该页是否已经使用过,简单来讲就是,如果是0,就换出,如果是1就置为0,可以先不换出,然后第二轮根据FIFO 算法,即驻留时间最久的换出。
注:如果检查到最后一个页面还是1,再返回队首第一个重新检查。

举例子:2-3-2 进入三个物理块,箭头表示指针

首先是 2⬅

然后是2,3⬅
进入2的时候此时物理块中含有2故不需要页面置换,所以指针不动,仍在3上,并不是在第三个物理块上。

改进Clock

与之前基础的clock算法不同,改进的clock增加了一个注重点,就是置换代价,打个比方,如果该页被修改过,则有置换的必要,如果没有被修改,就没有必要置换,就是一个代价问题。
简单说就是之前只看访问0或者1,现在不仅看访问而且看修改0或者1;
最优就是访问0 and 修改 0,其次是01,10,11;以此来置换

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Yoo前端

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

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

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

打赏作者

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

抵扣说明:

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

余额充值