Skip to content

LRU 页面置换算法

考情分析

LRU 是页面置换算法中考频最高的算法,计算题几乎必考。🔥🔥🔥 绝对核心。

FIFO 只看"谁来得早",完全无视使用频率,性能自然差。LRU 换了一种思路:用过去的访问记录预测未来,淘汰最久没碰过的页面。

算法规则

LRU(Least Recently Used):淘汰最近最久没有被使用的页面。

核心思想:根据过去的使用情况预测未来——如果一个页面很久没被访问,未来可能也不会被访问。就像书架满了要撤掉哪本书——撤掉最久没翻过的那本最划算。

置换示例

页面引用串:3, 2, 1, 0, 3, 2, 4, 3, 2, 1, 0, 4,分配 3 个页框

访问页框状态缺页?淘汰
3缺页
2缺页
1缺页
0缺页3(最久未用)
3缺页2(最久未用)
2缺页1(最久未用)
4缺页0(最久未用)
3命中
2命中
1缺页4(最久未用)
0缺页3(最久未用)
4缺页2(最久未用)

缺页次数:10 次,缺页率 =10/1283%

做 LRU 题目的技巧

每次访问一个页面后,把它标记为"最新使用"。淘汰时选择"最旧"的页面。可以想象页面按最后访问时间排序,每次淘汰排在最前面(最旧)的。

交互可视化

加载可视化中...

LRU 的实现

方法一:计数器

每个页表项维护一个时间戳,每次访问时更新。淘汰时选时间戳最小的。

缺点:每次访存都要更新计数器,淘汰时要扫描所有页表项。

方法二:栈

维护一个页面号栈。每次访问某页面时,将它从栈中取出放到栈顶。淘汰时取栈底页面。

缺点:需要用链表实现栈以支持中间元素的移动。

LRU 的性质

性质说明
是栈算法不会出现 Belady 异常
性能在可实现的算法中性能最接近 OPT
实现开销硬件支持复杂,实际系统中通常使用近似 LRU(如 CLOCK 算法)

考研高频考点

  • 🔥🔥🔥 给定引用串和页框数,手算 LRU 的缺页次数
  • 🔥🔥🔥 LRU 不会出现 Belady 异常
  • 🔥🔥 LRU 是根据「过去」预测「未来」(与 OPT 对比)
  • 🔥 LRU 的两种实现方式(计数器/栈)
  • 🔥 LRU 实现开销大,实际中使用近似算法

LRU 基于"过去"来预测,那如果能看到"未来"呢?下篇来看 OPT 最佳置换算法——理论最优但无法实现,是衡量其他算法好坏的标尺。

真题练习

相关真题(3题)

2025Q27选择题2分

LRU页面置换:3个页框下的缺页次数计算

2019Q29选择题2分

LRU页面置换:4个页框下的页置换次数计算

2015Q27选择题2分

LRU置换:最近使用顺序为5,4,8,2,最久未使用的2被淘汰