ZH
我的工具

页面置换算法计算器(FIFO、LRU、Optimal)

模拟 FIFO、LRU、Optimal、LFU 和 Clock 页面置换:给出每次访问后的页框、命中与缺页、命中率,并检查 Belady 异常。

缺页次数
12
LRU,3 个页框
命中次数
8
命中率
40%
缺页率
60%

在这个范围内没有出现 Belady 异常:没有任何算法因页框增多而缺页更多。

LRU 置换上次使用时间最久远的页面。

不同页框数下的缺页次数
  • FIFO
  • LRU
  • Optimal
  • LFU
  • Clock
不同页框数下的缺页次数: FIFO, LRU, Optimal, LFU, Clock051015201234567页框数
LRU,3 个页框
#页面页框 1页框 2页框 3结果被换出
177缺页
2070缺页
31701缺页
42201缺页7
50201命中
63203缺页1
70203命中
84403缺页2
92402缺页3
103432缺页0
110032缺页4
123032命中
132032命中
141132缺页0
152132命中
160102缺页3
171102命中
187107缺页2
190107命中
201107命中
不同页框数下的缺页次数
页框数FIFOLRUOptimalLFUClock
12020202020
21517131515
3151291314
4108899
597779
666666
766666
我的工具 →
广告

内存已满而程序又需要一个尚未调入的页面时,操作系统必须选出一个页面换出,这个选择决定了会发生多少次缺页。这个计算器针对一个访问序列运行经典的置换算法——FIFO、LRU、Optimal、LFU 和 Clock(二次机会),显示每次访问后的页框以及命中和缺页情况,给出命中率,并对每种页框数比较所有算法,在出现 Belady 异常时把它揭示出来。

使用方法

  1. 输入访问序列:按使用顺序排列的页号。
  2. 设置页框数。
  3. 选择算法。
  4. 查看页框表、缺页次数以及按页框数的比较。

计算公式

命中率 = 命中次数 ÷ 访问次数 · 缺页率 = 缺页次数 ÷ 访问次数 · 缺页次数包括首次装入空页框

FIFO 换出最早调入的页面;LRU 换出最近最久未使用的页面;Optimal 换出下次使用最远(或以后不再使用)的页面;LFU 换出调入后使用次数最少的页面(并列时取最早调入的);Clock 绕着页框转动并清除引用位,换出第一个引用位已为 0 的页面。像教材一样,所有算法都把最初的调入计为缺页。比较表对 1 到 12 个页框分别重复运行。

示例

用教材中的访问序列 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 和 3 个页框,LRU 缺页 12 次、命中 8 次(命中率 40%),FIFO 为 15 次,Clock 为 14 次,Optimal 为下限 9 次。对于序列 1 2 3 4 1 2 5 1 2 3 4 5,FIFO 在 3 个页框时缺页 9 次,4 个页框时却缺页 10 次:这就是 Belady 异常。

常见问题

什么是 Belady 异常?

对某些访问序列,给 FIFO 更多页框反而会引起更多缺页。LRU 和 Optimal 是栈式算法——k 个页框中的页面始终是 k + 1 个页框中页面的子集——所以不会出现这种现象。

为什么实际系统不使用 Optimal?

因为它需要预知将来的页面访问顺序。它只作为衡量标准:在同一序列上,没有任何算法的缺页次数比它更少。

首次装入也算缺页吗?

算。不在内存中的页面无论是否还有空闲页框都会引起缺页,这类缺页称为强制性缺页或冷缺页。

资料来源

最后更新:

引用此工具
APA

kakaoCalc. (2026, November 8). 页面置换算法计算器(FIFO、LRU、Optimal). https://kakao.mobile/zh/tools/page-replacement-simulator/

MLA

“页面置换算法计算器(FIFO、LRU、Optimal).” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/page-replacement-simulator/.

广告