页面置换算法计算器(FIFO、LRU、Optimal)
模拟 FIFO、LRU、Optimal、LFU 和 Clock 页面置换:给出每次访问后的页框、命中与缺页、命中率,并检查 Belady 异常。
在这个范围内没有出现 Belady 异常:没有任何算法因页框增多而缺页更多。
LRU 置换上次使用时间最久远的页面。
- FIFO
- LRU
- Optimal
- LFU
- Clock
| # | 页面 | 页框 1 | 页框 2 | 页框 3 | 结果 | 被换出 |
|---|---|---|---|---|---|---|
| 1 | 7 | 7 | 缺页 | |||
| 2 | 0 | 7 | 0 | 缺页 | ||
| 3 | 1 | 7 | 0 | 1 | 缺页 | |
| 4 | 2 | 2 | 0 | 1 | 缺页 | 7 |
| 5 | 0 | 2 | 0 | 1 | 命中 | |
| 6 | 3 | 2 | 0 | 3 | 缺页 | 1 |
| 7 | 0 | 2 | 0 | 3 | 命中 | |
| 8 | 4 | 4 | 0 | 3 | 缺页 | 2 |
| 9 | 2 | 4 | 0 | 2 | 缺页 | 3 |
| 10 | 3 | 4 | 3 | 2 | 缺页 | 0 |
| 11 | 0 | 0 | 3 | 2 | 缺页 | 4 |
| 12 | 3 | 0 | 3 | 2 | 命中 | |
| 13 | 2 | 0 | 3 | 2 | 命中 | |
| 14 | 1 | 1 | 3 | 2 | 缺页 | 0 |
| 15 | 2 | 1 | 3 | 2 | 命中 | |
| 16 | 0 | 1 | 0 | 2 | 缺页 | 3 |
| 17 | 1 | 1 | 0 | 2 | 命中 | |
| 18 | 7 | 1 | 0 | 7 | 缺页 | 2 |
| 19 | 0 | 1 | 0 | 7 | 命中 | |
| 20 | 1 | 1 | 0 | 7 | 命中 |
| 页框数 | FIFO | LRU | Optimal | LFU | Clock |
|---|---|---|---|---|---|
| 1 | 20 | 20 | 20 | 20 | 20 |
| 2 | 15 | 17 | 13 | 15 | 15 |
| 3 | 15 | 12 | 9 | 13 | 14 |
| 4 | 10 | 8 | 8 | 9 | 9 |
| 5 | 9 | 7 | 7 | 7 | 9 |
| 6 | 6 | 6 | 6 | 6 | 6 |
| 7 | 6 | 6 | 6 | 6 | 6 |
内存已满而程序又需要一个尚未调入的页面时,操作系统必须选出一个页面换出,这个选择决定了会发生多少次缺页。这个计算器针对一个访问序列运行经典的置换算法——FIFO、LRU、Optimal、LFU 和 Clock(二次机会),显示每次访问后的页框以及命中和缺页情况,给出命中率,并对每种页框数比较所有算法,在出现 Belady 异常时把它揭示出来。
使用方法
- 输入访问序列:按使用顺序排列的页号。
- 设置页框数。
- 选择算法。
- 查看页框表、缺页次数以及按页框数的比较。
计算公式
命中率 = 命中次数 ÷ 访问次数 · 缺页率 = 缺页次数 ÷ 访问次数 · 缺页次数包括首次装入空页框
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?
因为它需要预知将来的页面访问顺序。它只作为衡量标准:在同一序列上,没有任何算法的缺页次数比它更少。
首次装入也算缺页吗?
算。不在内存中的页面无论是否还有空闲页框都会引起缺页,这类缺页称为强制性缺页或冷缺页。
资料来源
最后更新:
包含这些输入的页面地址: https://kakao.mobile/zh/tools/page-replacement-simulator/
引用此工具
kakaoCalc. (2026, November 8). 页面置换算法计算器(FIFO、LRU、Optimal). https://kakao.mobile/zh/tools/page-replacement-simulator/
“页面置换算法计算器(FIFO、LRU、Optimal).” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/page-replacement-simulator/.