LRU,Least Recently Used算法描述:选择内存中最近最久未使用的页换出。该算法赋予每个页一个访问字段,用来记录一个页自上次被访问以来所经历的时间t。
LRU算法的实现:
1.寄存器:为每个内存中的页配置一个移位寄存器,可标识为R=Rn-1........R2R1R0 .当进程访问某页时候,要将相应的寄存器的最高位置成1.此时,每隔一定时间将寄存器右移一位。如果把n位寄存器的数看作是一个页对应的整数,那么具有最小数值的寄存器对应的页就是最近最久未使用的页。
2.栈
可以利用一个特殊的栈来保存当前使用的各个页的页号。每当进程访问某页时,便将该页的页号从栈中移出,将它压入栈顶。因此,栈顶始终是最新被访问的页,而栈底则是最近最久未使用的页。
3.计数器
为每个页表项增加一个时间字段,并为CPU增加一个逻辑始终或计数器。每次访问内存中的某个页时,就增加这个页对应的页表项的时间字段的值,每次置换时选择时间字段值最小的页作为换出页。