最佳置换算法(OPT)、先进先出置换算法(FIFO)、最近最久未使⽤
(LRU)算法、时钟(。。。
1.最佳置换算法(OPT)(理想置换算法)
从主存中移出永远不再需要的页⾯;如⽆这样的页⾯存在,则选择最长时间不需要访问的页⾯。于所选择的被淘汰页⾯将是以后永不使⽤的,或者是在最长时间内不再被访问的页⾯,这样可以保证获得最低的缺页率。 即被淘汰页⾯是以后永不使⽤或最长时间内不再访问的页⾯。
2.先进先出置换算法(FIFO)
是最简单的页⾯置换算法。这种算法的基本思想是:当需要淘汰⼀个页⾯时,总是选择驻留主存时间最长的页⾯进⾏淘汰,即先进⼊主存的页⾯先淘汰。其理由是:最早调⼊主存的页⾯不再被使⽤的可能性最⼤。 即优先淘汰最早进⼊内存的页⾯。
FIFO算法还会产⽣当所分配的物理块数增⼤⽽页故障数不减反增的异常现象,这是由 Belady于1969年发现,故称为Belady异常。
只有FIFO算法可能出现Belady 异常,⽽LRU和OPT算法永远不会出现Belady异常。
注意:内存的页⾯中“最⽼“的页⾯,会被新的⽹页直接覆盖,⽽不是“最⽼“的页⾯先出队,然后新的⽹页从队尾⼊队。
3.最近最久未使⽤(LRU)算法
这种算法的基本思想是:利⽤局部性原理,根据⼀个作业在执⾏过程中过去的页⾯访问历史来推测未来的⾏为。它认为过去⼀段时间⾥不曾被访问过的页⾯,在最近的将来可能也不会再被访问。所以,这种算法的实质是:当需要淘汰⼀个页⾯时,总是选择在最近⼀段时间内最久不⽤的页⾯予以淘汰。 即淘汰最近最长时间未访问过的页⾯。
4. 时钟(CLOCK)置换算法
LRU算法的性能接近于OPT,但是实现起来⽐较困难,且开销⼤;FIFO算法实现简单,但性能差。所以操作系统的设计者尝试了很多算法,试图⽤⽐较⼩的开销接近LRU的性能,这类算法都是CLOCK算法的变体。
access被淘汰了吗
简单的CLOCK算法是给每⼀帧关联⼀个附加位,称为使⽤位。当某⼀页⾸次装⼊主存时,该帧的使⽤位设置为1;当该页随后再被访问到时,它的使⽤位也被置为1。对于页替换算法,⽤于替换的候选帧集合看做⼀个循环缓冲区,并且有⼀个指针与之相关联。当某⼀页被替换时,该指针被设置成指向缓
冲区中的下⼀帧。当需要替换⼀页时,操作系统扫描缓冲区,以查使⽤位被置为0的⼀帧。每当遇到⼀个使⽤位为1的帧时,操作系统就将该位重新置为0;如果在这个过程开始时,缓冲区中所有帧的使⽤位均为0,则选择遇到的第⼀个帧替换;如果所有帧的使⽤位均为1,则指针在缓冲区中完整地循环⼀周,把所有使⽤位都置为0,并且停留在最初的位置上,替换该帧中的页。由于该算法循环地检查各页⾯的情况,故称为CLOCK算法,⼜称为最近未⽤(Not Recently Used, NRU)算法。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。