实现

「最近最少用页面替换算法」(LRU)是一种全局页面替换算法。算法淘汰的页面是在最近一段时间里较久未被访问的那页。

算法依据:根据程序运行局部性原理,那些刚被使用过的页面,可能马上还要被使用,而较长时间未被使用的页面,可能不会马上需要使用。

创建一个「页面淘汰队列」。队列中存放当前在内存中的页号,每当访问一页时就调整一次,使队列尾总指向最近访问的页,队列头就是最近最少用的页。

发生缺页中断时总淘汰队列头所指示的页;执行一次页面访问后,需要从队列中把该页调整到队列尾。

例题

给某作业分配了三块内存,该作业依次访问的页号为:4,3,0,4,1,1,2,3,2。当访问这些页时,页面淘汰序列变化情况如下

访问页号 4 3 0 4 1 1 2 3 2
内存1 4 4 4 3 0 0 4 1 1
内存2 3 3 0 4 4 1 2 3
内存3 0 4 1 1 2 3 2
被淘汰 3 0 4