赞
踩
目录
今天是坚持写博客的第13天,为坚持和努力的自己和大家点赞。时间很快,马上就要满两周了,总体收获还是有的,不至于一无所获。
我们今天来讲讲操作系统里面的三种页面置换算法,希望对大家的理解、复习和备考有所帮助。
在正式介绍前,我们需要了解缺页中断的概念和缺页中断率的计算方法。这一部分可以根据需要选择阅读。
缺页中断就是发生页面插入空缺位置或发生替换已经加入的页面的时刻,缺页中断率=缺页中断次数/总替换次数。
FIFO,First In First Out,先入先出算法,是最简单的页面替换策略,它按照页面进入内存的顺序来决定替换哪个页面。即优先淘汰最早进入内存的页面,不论这些页面之后是否被频繁访问。但是FIFO可能会导致“Belady异常”,即随着分配给进程的物理块数增加,缺页次数反而增加。
假设我们有一组需要替换的页面(7,0,1,2,0,3,0,4,2,3,0,3,2),有三个空间可以用来替换,我们使用FIFO算法进行替换,可以遵循以下策略:
根据策略,我们可以得出下面的思路,演示图在思路后面放出:
以此类推,我们可以得到最终结果,在最后一次替换后,我们可以得到最终存在页面中的是0-2-3。
PS:灵魂画手上线了
在图片中的示例中,每次插入或替换的页面已经用红色标出,未发生替换时已经标出“不替换”。我们可以根据图像得出规律,FIFO的图像规律类似于一条波浪线,因此可以检查“波浪线”来看自己是否替换正确。
此时的缺页中断率为10/13。不知道缺页中断率的小伙伴可以看文章开头的提示。
OPT,Optimal Page Replacement,最佳页面替换算法,是一种基于全局信息做出决策的页面替换算法,每次选择未来最长时间不再被访问的页面进行替换,可以达到最低的缺页率。
仍然假设我们有一组需要替换的页面(7,0,1,2,0,3,0,4,2,3,0,3,2),有三个空间可以用来替换,我们使用OPT算法进行替换,可以遵循以下策略:
根据策略,我们可以得出如下思路:
以此类推,我们可以得到最终解。最后的结果为2-0-3
PS:灵魂画手梅开二度
缺页中断率为7/13。
LRU,Least Recently Used,最近最少使用算法,如果一个数据最近被访问过,那么将来被访问的可能性也较大。因此,它选择最近最长时间未被访问的页面进行替换。LRU的性能和效率接近OPT,但是对于频繁访问的页面更新开销较大。
还是假设我们有一组需要替换的页面(7,0,1,2,0,3,0,4,2,3,0,3,2),有三个空间可以用来替换,我们使用LRU算法进行替换,可以遵循以下策略:
根据策略,我们可以得出如下思路:
以此类推,我们可以得到最终解,最终完成替换后的页面为0-3-2。
灵魂画手梅开三度
PS:这里博主发现一个不知道是否可以称为规律的规律:将要被替换的三个页面向“过去”数,出现次数最多的把他替换。比如上面例子中的页面4,在他之前,2出现4次,0出现6次,3出现2次,0出现的次数最多,因此它最长时间没被使用,需要替换0。
这里博主写的时候也愣了一下,有点被自己绕进去了,需要好好体会,或多看文章,纳广见于脑中才能得出一个相对正确的答案。
缺页中断率为9/13。
今天对操作系统中的三种页面替换算法的解释就到这里,希望对大家有帮助,如果对您有所帮助,希望您可以留下点赞或关注,让我的文章进入您的收藏夹吃灰或者留下您的建议也可以,这对我真的很重要,谢谢!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。