1、策略
页表中登记每个页被CPU访问的时间,淘汰时选择最近一段时间最久没有被访问的页。
LRU算法的依据是程序的时间局部性原理,即一个页最近被访问后,接下来,被再次访问的可能性很大,相反地,长时间没有被访问的页,之后很可能也不会被访问。
2、例题
一个进程在运行过程中依次访问的页号(也称进程的引用序列)是:0、2、3、1、4、1、2、3、5、2、3、1、4、5、0、3、6、9、8、3、6、7、3、6、9、8、7。假定分配给该进程4个块,按局部页面调度,采用LRU算法时,如何计算缺页中断的次数?依次淘汰的页号是哪些?
上图的方法是模拟堆栈的方式。图中箭头方向是栈底的方向,栈底方向是较长时间没有被访问的页,而栈顶的页是新近访问的。在访问一个页时,如果该页不在“堆栈”中,则从栈顶进栈,在进栈之前,如果堆栈中的页数已满4页,则删除栈底的页,因为它是最长时间没有被访问的页,将其淘汰并记录在最后一行的正下方;如果当前访问的页已经在“堆栈”中,则将其从所在位置移至栈顶.在“堆栈"中它上方的页依次下移一个位置。
上图中的最后一行给出了进程运行过程中依次沟汰的页号0、4、5、2、3、1、4、5、0、9、8、7和3,共13次.另外加上开始运行时装人的4个页,则共有17次缺页中断,其中13次缺页中断运行了置换算法。
3、练习题
1、假定某请求页式存储管理系统中,为一进程分配了内存物理块3块,考虑以下的页面引用串