赞
踩
目标:把未来不再使用的或短期内较少使用的页面调出,通常只能在局部性原理指导下依据过去的统计数据进行预测。
常用的页面置换算法有以下几种:
最佳置换算法OPT
先进先出算法FIFO
近期最久未用过算法LRU
CLOCK置换算法NRU
页面缓冲算法PBA
近期最少使用算法LFU
根据未来使用情况将未来的近期里不用的页替换出去。
举例:发生了6次页面置换,9次缺页中断,总访问次数20次,缺页率9/20=45% 。
以上述数据为例,缺页即为物理块中没有下一个页面需要的元素,置换即为物理块中有所需元素。
选择内存中驻留最久的页进行淘汰。
以上述数据为例:
发生了12次页面置换,15次缺页中断,总访问次数20次,缺页率15/20=75% 。
近期最久未访问过的页,进行置换。
最久未访问过的页表示的,701进入,2进入,满,选择最久未访问过的,在2之前,7两次未访问,0一次,1无,故淘汰7,继续,0进入,不缺页,3进入时,1比2 多经过一轮,故1淘汰置换,以此类推。
发生了9次页面置换,12次缺页中断,总访问次数20次,缺页率12/20=60% 。
主要整理一下Clock算法,首先是基础的Clock置换算法,,为每页设置一位访问位,再将内存中的所有页面都通过
这里要注意一点的是,Clock算法只有一个指针,只能用它表示该页是否已经使用过,简单来讲就是,如果是0,就换出,如果是1就置为0,可以先不换出,然后第二轮根据FIFO 算法,即驻留时间最久的换出。
注:如果检查到最后一个页面还是1,再返回队首第一个重新检查。
举例子:2-3-2 进入三个物理块,箭头表示指针
首先是 2⬅
然后是2,3⬅
进入2的时候此时物理块中含有2故不需要页面置换,所以指针不动,仍在3上,并不是在第三个物理块上。
与之前基础的clock算法不同,改进的clock增加了一个注重点,就是置换代价,打个比方,如果该页被修改过,则有置换的必要,如果没有被修改,就没有必要置换,就是一个代价问题。
简单说就是之前只看访问0或者1,现在不仅看访问而且看修改0或者1;
最优就是访问0 and 修改 0,其次是01,10,11;以此来置换
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。