LFU页面置换算法缺页次数计算结果不符及置换逻辑疑问
LFU页面置换算法缺页计算问题解答
你的计算规则正确性判断
你采用的规则完全符合标准LFU算法的逻辑:
- 页面每次被访问时访问频率+1
- 缺页置换时选择当前驻留页面中频率最低的换出,换出页面的频率计数直接清除,新调入页面频率初始化为1
按这个规则推导得出的9次缺页结果是正确的。
参考答案的逻辑错误说明
参考答案存在明显的规则误用,问题出在第8步访问C的节点:
此时3个槽位的驻留页面及访问频率为:
- 槽1:A,频率3
- 槽2:B,频率2
- 槽3:D,频率1
按LFU规则应该置换频率最低的D,而参考答案错误置换了频率更高的B,属于规则执行错误,后续推导全部偏离,得出的11次缺页结果不成立。
完整正确的推导校验
我们逐步骤复现标准LFU执行过程(槽位3个,引用序列ABCBADACEBEFBEFBA):
| 访问序号 | 访问页面 | 槽1 | 槽2 | 槽3 | 是否缺页 | 对应频率更新(驻留页) |
|---|---|---|---|---|---|---|
| 1 | A | A | 空 | 空 | 是 | A=1 |
| 2 | B | A | B | 空 | 是 | B=1 |
| 3 | C | A | B | C | 是 | C=1 |
| 4 | B | A | B | C | 否 | B=2 |
| 5 | A | A | B | C | 否 | A=2 |
| 6 | D | A | B | D | 是 | 换出C(1),D=1 |
| 7 | A | A | B | D | 否 | A=3 |
| 8 | C | A | B | C | 是 | 换出D(1),C=1 |
| 9 | E | A | B | E | 是 | 换出C(1),E=1 |
| 10 | B | A | B | E | 否 | B=3 |
| 11 | E | A | B | E | 否 | E=2 |
| 12 | F | A | B | F | 是 | 换出E(2),F=1 |
| 13 | B | A | B | F | 否 | B=4 |
| 14 | E | A | B | E | 是 | 换出F(1),E=1 |
| 15 | F | A | B | F | 是 | 换出E(1),F=1 |
| 16 | B | A | B | F | 否 | B=5 |
| 17 | A | A | B | F | 否 | A=4 |
累计缺页次数为9次,和你的计算结果完全一致。
内容的提问来源于stack exchange,提问作者aujau
相关产品推荐
相关产品推荐

