一、每次发生缺页时,当然可以随机选择一个页面置换。但是如果一个经常使用的页被置换出去,很有可能它很快又要被调入内存,带来不必要的额外开销。所以选择不常使用的页面会使系统性能好得多。
如果刚被调出的页面又立即要用,因而又要把它装入,而装入不久又被选中调出,调出不久又被装入,如此反复,使调度非常频繁。这种现象称为“抖动”或称“颠簸”。
页面置换算法的优劣将会影响虚拟存储系统的性能,进而影响整个系统的性能。以下是几个主要的页面置换算法
1、先进先出页面置换算法(First-In First-Out,FIFO)
先进先出页面置换算法总是选择最先装入内存的一页调出,或者说是把驻留在内存中时间最长的一页调出。
2、最近最少使用页面置换算法(Least Recently Used,LRU)
在缺页发生时,首先淘汰掉最长时间未被使用过的页面。这个策略称为LRU页面置换算法。
3、理想页面置换算法(Optimal replacement,OPT)
OPT算法淘汰以后不再需要的或者在最长时间以后才会用到的页面。这一算法一般不可能实现,但它可以作为衡量其他页面淘汰算法优劣的一个标准。
例1(FIFO):
例2(LRU):
例3(OPT):
总结:
FIFO和LRU的区别:
(1)不同点:命中时FIFO内存中的块号顺序不变,LRU将命中的块号提到最上面
(2)相同点:每次需要淘汰页面时,都是淘汰最下面的页面(内存中存在时间最久)
注:缺页异常处理流程图