LRU代表“最近最少使用” 。 LRU算法的开发结束了1960年代和1970年代关于页面替换算法的辩论和研究。
LRU替换缓存中最长的行,而不参考该行。它的工作原理是,最近使用的块更有可能再次被引用。 LRU是最常用的算法,因为与其他算法相比,它提供的页面错误数量更少。
LRU的特点
- 已经观察到,最近被大量使用的页面可能也会在即将到来的指令中被大量使用,这构成了LRU的基础。
- 当程序所请求的页面不存在于RAM中时,就会发生页面错误,然后,如果页面框架已满,则我们必须删除最长时间未使用的页面。
- 可以很容易地在2路集关联映射中实现,其中每行都包含一个USE位。参考线的USE位设置为1,另一条线的USE位设置为0。当设置满时,我们考虑USE位为0的替换块。
LRU的优点
- 与FIFO不同,LRU不受Belady异常的影响。
- 与最优算法以外的任何其他算法相比,它提供的页面错误数更少,并且由于无法在现实生活中实现最优算法,LRU是最常用的算法。
- LRU算法非常有效。
LRU的缺点
- 由于必须跟踪所引用的页面,因此开销更大。
- 由于需要硬件协助,因此难以实施。