软件设计师 · 高频练习

为什么增加页框数,FIFO 的缺页次数反而可能增加?

中级 单选题 第 854 题 中等 软件设计师操作系统页面置换FIFOBelady异常
题目

对同一个页面访问序列,采用 FIFO 页面置换算法时,增加分配给进程的页框数后,缺页次数反而增加。这种现象称为()。

A 局部性原理
B 写时复制
C Belady 异常
D 工作集收缩
题目类型:原创高频练习题 用途:用于帮助理解软件设计师相关考点和答案解析,不等同于官方真题。
正确答案
C
答案解析

FIFO 只按页面进入内存的先后顺序淘汰,不考虑近期使用情况。对某些访问序列,更多页框会改变淘汰节奏,使原本能保留的页面反而在不利时机被换出,导致缺页次数增加,这就是 Belady 异常。

选项分析

A

错误。局部性原理描述程序在一段时间内倾向访问相近地址或重复页面,不是缺页反增现象。

B

错误。写时复制是在真正写入时才复制共享页面的内存管理技术。

C

正确。Belady 异常专指某些置换算法中增加页框反而增加缺页次数。

D

错误。工作集收缩表示近期活跃页面集合变小,与题述异常不是同一概念。

本题为什么容易错

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具有栈性质,不会出现这种现象。