考虑下述页面走向:
1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6
当内存块数量分别为3时,试问FIFO、LRU、OPT这三种置换算法的缺页次数各是多少?
答:缺页定义为所有内存块最初都是空的,所以第一次用到的页面都产生一次缺页。
FIFO法:
因为FIFO表示先进先出,它们的执行流程是这样的,如果该值在内存块中,则内存块的值不变;如果该值不在内存块,则将该值放入出栈口地址。当内存块数量为3时,FIFO的演示图如下图所示,其中蓝色标记表示将被替换的单元(也即出栈口地址),
LRU法:
LRU是Least Recently Used 近期最少使用算法,它的执行流程是这样的,如果该值在内存块中,则内存块重新调整位置,即将该值调整到最前面的位置并将最后面的位置依次后移;如果该值不在内存块中,则插入该值,即将该值调整到最前面的位置并将最后面的位置剔除;具体如下图所示:
参考资料: