对同一个页面访问序列,采用 FIFO 页面置换算法时,增加分配给进程的页框数后,缺页次数反而增加。这种现象称为()。
FIFO 只按页面进入内存的先后顺序淘汰,不考虑近期使用情况。对某些访问序列,更多页框会改变淘汰节奏,使原本能保留的页面反而在不利时机被换出,导致缺页次数增加,这就是 Belady 异常。
选项分析
错误。局部性原理描述程序在一段时间内倾向访问相近地址或重复页面,不是缺页反增现象。
错误。写时复制是在真正写入时才复制共享页面的内存管理技术。
正确。Belady 异常专指某些置换算法中增加页框反而增加缺页次数。
错误。工作集收缩表示近期活跃页面集合变小,与题述异常不是同一概念。
本题为什么容易错
Belady 异常不是说 FIFO 总是页框越多越差,而是说存在某些访问序列会出现这种反常情况。不能从一次例子推广为所有序列。
简短答案
为什么增加页框数,FIFO 的缺页次数反而可能增加,正确答案是 C(Belady 异常)。FIFO 只按页面进入内存的先后顺序淘汰,不考虑近期使用情况。对某些访问序列,更多页框会改变淘汰节奏,使原本能保留的页面反而在不利时机被换出,导致缺页次数增加,这就是 Belady 异常。
易混淆概念对比表
| 概念 | 本题判断 | 区别要点 | 记忆提示 |
|---|---|---|---|
| 局部性原理 | 本题干扰项 | 错误。局部性原理描述程序在一段时间内倾向访问相近地址或重复页面,不是缺页反增现象。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 写时复制 | 本题干扰项 | 错误。写时复制是在真正写入时才复制共享页面的内存管理技术。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| Belady 异常 | 本题正确答案 | 正确。Belady 异常专指某些置换算法中增加页框反而增加缺页次数。 | 看到题干核心场景时优先联想到它 |
| 工作集收缩 | 本题干扰项 | 错误。工作集收缩表示近期活跃页面集合变小,与题述异常不是同一概念。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
本题易混淆选项怎么区分
- 局部性原理:错误。局部性原理描述程序在一段时间内倾向访问相近地址或重复页面,不是缺页反增现象。
- 写时复制:错误。写时复制是在真正写入时才复制共享页面的内存管理技术。
- 工作集收缩:错误。工作集收缩表示近期活跃页面集合变小,与题述异常不是同一概念。
知识点详解
若一种置换算法在 n 个页框时驻留的页面集合总是包含于 n+1 个页框时的集合,就具有栈性质,增加页框不会增加缺页。OPT 和 LRU 满足这一性质,FIFO 一般不满足。因此 FIFO 在特定访问序列上会出现 Belady 异常,但这不意味着它在所有情况下都比其他算法差。
备考速记
页框变多缺页反增,先想到 FIFO 的 Belady 异常。
FIFO 在Belady异常场景中的作用
FIFO在本题中的核心价值,是解决“对同一个页面访问序列,采用 FIFO 页面置换算法时,增加分配给进程的页框数后,缺页次数反而增加。这种现象称为()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。
同类题怎么考
- 给出访问串和不同页框数,计算FIFO缺页次数并识别异常。
- 判断FIFO、LRU、OPT中哪些算法不会出现Belady异常。
- 根据页面淘汰记录反推使用了哪种置换算法。
FIFO 在软件设计师软考中的考法
软考选择题通常不会只考概念定义,还会把FIFO放到Belady异常场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。
解题思路
“内存多了应该更好”通常没错,但 FIFO 的决策依据很机械:谁先进来谁先走。页框数变化后,页面进出队列的节拍也变了,于是可能在后面访问前刚好淘汰了要用的页。考题出现“页框更多、缺页反而更多”,直接锁定 Belady 异常。
考点定位
FIFO 可能出现页框数增加而缺页次数增加的 Belady 异常;具有栈性质的 LRU 和 OPT 不会出现这种异常。
易错提醒
- 误认为所有页面置换算法都可能出现 Belady 异常。
- 把“可能增加”说成“必然增加”。
- 只记住名词,没有理解页框数改变会改变 FIFO 淘汰顺序。
备考提示
- 用经典访问串分别模拟3个和4个页框,观察FIFO队列节奏怎样变化。
- 把FIFO、LRU、OPT按“是否具有栈性质、是否可能出现Belady异常”做一张表。
你可能还想了解
- 为什么FIFO会出现Belady异常?
- LRU会不会出现Belady异常?
- 页面置换算法的栈性质是什么?
- 增加页框数是否一定能降低缺页率?
本文小结
FIFO可能因页框数变化而改变淘汰节奏,出现页框更多、缺页反而增加的Belady异常。LRU和OPT具有栈性质,不会出现这种现象。