Skip to content

2011年 408 操作系统 第 29 题

操作系统2011年选择题2分

题目

当系统发生抖动 (thrashing) 时,可以采取的有效措施是( )。

I. 撤销部分进程

II. 增加磁盘交换区的容量

III. 提高用户进程的优先级

错因

B

把 Ⅱ 增加交换区当成抖动解药——但抖动的根因是内存不够装下所有进程的工作集,与交换区大小无关。交换区再大也不能让内存装更多页;甚至交换区越大让 OS 敢启动更多进程,反而加剧抖动

C

提高优先级让某个进程更激进地争资源——它能跑得更频繁,但整个系统的抖动没缓解。其他进程仍在频繁缺页,整体缺页率不降反升(因为高优先级进程加塞挤占页框)。优先级是一个进程的事,抖动是系统的事。

D

承认 Ⅰ 撤销进程,但又把 Ⅱ 交换区也算进去——同 B 的错。Ⅱ 不解决抖动,搭进 Ⅰ 也不对。

总解析

抖动:进程花在缺页 I/O 上的时间超过实际计算时间——CPU 利用率反而下降。

根因:进程数过多 → 每个进程分到的页框 < 工作集大小 → 频繁缺页 → 频繁页面置换 → CPU 大部分时间在等磁盘 I/O。

解决思路:要么增加内存(不可能),要么减少同时活跃的进程数(让幸存进程的页框够装下工作集)。

逐条核对:

措施作用是否解决抖动?
Ⅰ 撤销部分进程降低多道程度 → 每个进程页框增加 → 工作集装得下✓ 有效
Ⅱ 增加交换区容量让外存能容纳更多被换出的页 —— 交换区不是瓶颈,内存才是。增大交换区甚至让系统敢启动更多进程,加剧抖动
Ⅲ 提高用户进程优先级让某进程优先获得 CPU 和页框 —— 单个进程的待遇问题,整个系统的工作集仍超过内存,全局抖动不解

关键判定:抖动是容量危机——内存装不下所有活跃进程的工作集。解药只有"让活跃进程少一些"(撤销)或"让每个进程要的少一些"(很难)。其他都是在症状层面打转。

教材 Denning 工作集模型给出的策略:动态监控每个进程的工作集大小,只让"工作集之和 ≤ 内存"的那部分进程活跃,其余暂停。

正确的是 Ⅰ。

最终答案是 A

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题