Skip to content

2022年 408 操作系统 第 30 题

操作系统2022年选择题2分

题目

下列选项中,不会影响系统缺页率的是( )。

错因

A

A 当然影响——置换算法(FIFO / LRU / OPT / CLOCK)决定淘汰哪一页。淘汰的越是"马上又要再用"的页,下次访问就越容易缺页,LRU 比 FIFO 好的差别正在这里。把"算法"理解成"随便挑一个扔掉"就会觉得它跟缺页率无关,但挑得准不准直接决定下次访存命不命中。

B

工作集是进程在一段时间内集中访问的页集合。如果工作集 > 分配给进程的页框数,进程就会反复换入换出(颠簸 / thrashing);工作集 ≤ 页框数,进程"待在内存里跑"基本不缺页。工作集大小和缺页率直接挂钩。

C

进程多 → 物理内存被分摊得更稀 → 每个进程分到的页框少 → 装不下自己的工作集 → 缺页率上升。这也是"多道程序数过多触发抖动"的来源。只盯单进程的局部行为、忽略大家抢内存的全局效应,就会误判 C 不影响。

总解析

把"缺页率"拆成它的定义看:

要影响这个比率,要么改"分子"(让缺页发生得更多 / 更少),要么改"分母"(不现实,访存模式由程序决定)。所以重点看每个选项是否改变缺页中断发生的次数

选项影响什么是否改变缺页中断次数
A 置换算法决定淘汰哪一页✓ 淘汰错了下次就缺页
B 工作集大小工作集超出页框数就颠簸✓ 直接和缺页频度挂钩
C 进程数量进程多→单进程页框少✓ 间接拉高缺页率
D 页缓冲队列长度加快缺页处理速度✗ 不改变缺页发生次数

为什么页缓冲队列不影响缺页率?

页缓冲队列是 OS 在"换出但未真正释放"的页之间多加的一层缓冲——被换出的页先入队,若在被覆盖前又被访问,可以直接从队列取回,省掉一次磁盘 I/O。

但关键是:缺页中断本身仍然会发生——MMU 看到存在位是 0 就直接触发缺页,进了缺页处理程序后才发现"哦这页其实还在缓冲队列里",可以快速取回。整个过程还是被记成一次缺页。

所以页缓冲队列长度影响的是"每次缺页的处理速度",不影响"缺页发生的次数",缺页率公式里的分子分母都不动。

最终答案是 D

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数