Appearance
题目
下列有关基于时间片的进程调度的叙述中,错误的是( )。
错因
A
A 是对的——时间片越短切换越频繁,每次切换都有上下文保存/恢复的成本,频次 × 单次开销 = 总开销,所以时间片越短开销越大。看错"错误的"反向措辞会误选。
C
C 也是对的——时钟中断每个 tick 触发,ISR 里要更新内核时间变量、当前进程 CPU 累计时间、当前进程时间片内剩余时间(递减),剩余 ≤ 0 就通知调度器切换。这是 RR 时间片轮转的实现基础。把它当错的是没记住时钟中断 ISR 的标准动作。
D
D 也是对的——时间片大小要权衡:太短开销大、太长响应慢、进程多了平均每人轮到的间隔变长。这些因素都要综合考虑。教材一般把"响应时间、系统开销、进程数量、I/O 频率"列为影响时间片选择的主要因素。
总解析
题问"错误"。先把每个选项对应的状态转换 / 操作梳理清楚:
| 选项 | 描述 | 真实情况 |
|---|---|---|
| A | 时间片越短开销越大 | ✓ 切换次数 × 单次开销 = 总开销,反比关系 |
| B | 时间片用完→执行态变阻塞态 | ✗ 错 —— 时间片用完进程没有等任何东西,CPU 让给别人但自己数据齐全、随时能跑,所以进入就绪态,不是阻塞态 |
| C | 时钟中断更新剩余时间片 | ✓ ISR 标准动作 |
| D | 影响时间片的因素 | ✓ |
B 错在哪里:
| 状态转换 | 触发场景 |
|---|---|
| 执行 → 就绪 | 时间片用完 / 被高优先级抢占 / 主动 yield |
| 执行 → 阻塞 | 等 I/O / 等信号量 / 等临界资源 / 申请资源失败 |
区分钥匙:让出 CPU 后还能继续跑吗?能 → 就绪;要等什么 → 阻塞。时间片用完进程不需要等任何外部事件,只是被剥夺 CPU、回到就绪队列等下一轮。
最终答案是 B。