| 项目 | 值 |
|---|---|
| 不能调度 | 中断处理中、原子操作中(内核程序) |
| 非抢占式 | 进程主动放弃CPU时才调度 |
| 抢占式 | 可由OS剥夺CPU分配给其他进程 |
| 三层调度 | 高级调度(作业)、中级调度(内存)、低级调度(CPU) |
调度的时机——何时需要调度:
不能调度/切换的情况:
调度方式:
| 调度层次 | 别名 | 频率 | 调度对象 |
|---|---|---|---|
| 高级调度 | 作业调度/长程调度 | 最低 | 从外存选作业到内存 |
| 中级调度 | 内存调度 | 中等 | 将进程挂起/激活 |
| 低级调度 | 进程调度/短程调度 | 最高 | 从就绪队列选进程到CPU |
| 场景 | 是否调度 | 说明 |
|---|---|---|
| 运行→阻塞 | 一定 | 进程主动放弃CPU |
| 运行→终止 | 一定 | 进程结束 |
| 运行→就绪(时间片完) | 可能 | 取决于调度策略 |
| 阻塞→就绪 | 可能 | 新就绪进程可能优先级更高 |
| 中断处理中 | 不能 | 必须处理完中断 |
| 内核临界区 | 不能 | 访问临界资源不能被打断 |
| 考法 | 解题套路 |
|---|---|
| 调度时机 | 运行→阻塞/终止一定调度;时间片完/阻塞→就绪可能调度 |
| 不能调度的情况 | 中断处理中、内核临界区、原子操作 |
| 非抢占 vs 抢占 | 非抢占只在进程主动放弃时调度,抢占可由OS强制剥夺 |
| 三层调度对比 | 频率:低级>中级>高级;粒度:高级>中级>低级 |
↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。