Appearance
题目
下列选项中,降低进程优先级的合理时机是( )。
错因
B
正好相反——刚完成 I/O 的进程是 I/O 密集型行为的体现,它跑一会就进 I/O 阻塞、不会霸占 CPU;这种进程优先级应该提高才对(让它的"快进快出"特性发挥作用,提升系统利用率)。降它优先级反而加剧 CPU 利用率低下。
C
长期在就绪队列等待的进程已经"等够久了"——按"避免饥饿"原则,应该提高它的优先级让它早点跑(HRRN、老化机制都是这个思路)。降它优先级等于让它继续等下去,加剧饥饿。
D
从就绪转运行只是开始用 CPU,还没占多久——这时降优先级没意义。优先级调整通常基于"行为反馈"(用了多久 CPU、做了什么),刚获得 CPU 还没积累任何信息,不该立刻调整。
总解析
动态优先级的核心思想:根据进程行为反馈调整优先级,惩罚 CPU 密集型 + 奖励 I/O 密集型,提升系统资源利用率。
降低优先级的合理时机:进程表现出"霸占 CPU"的行为,需要被压制。
| 选项 | 时机 | 该如何调? | 原因 |
|---|---|---|---|
| A | 时间片用完 | 降优先级 | 把整个时间片用完没结束 = CPU 密集型行为,要降级让 I/O 进程有机会上 |
| B | 刚完成 I/O 进就绪 | 升优先级 | I/O 行为体现,奖励 |
| C | 长期在就绪队列 | 升优先级(防饥饿) | 等够久了该让它跑 |
| D | 从就绪转运行 | 不调 | 还没积累行为反馈 |
为什么 A 是合理的降级时机:
时间片用完意味着进程整段时间都在用 CPU——典型 CPU 密集型行为。如果让它保持高优先级,它会一直占 CPU,I/O 密集型进程的 I/O 完成后回到就绪队列也抢不过它。降级让 CPU 转给别人,整体利用率(CPU + I/O 并行)才高。
这就是多级反馈队列调度的底层思想:每用完一个时间片就降一级队列,逐渐筛出"最爱占 CPU"的进程放到低优先级慢慢跑;新到达和 I/O 完成的进程进高优先级队列,得到快速响应。
最终答案是 A。