进程调度学习卡片
进程调度时机
- 需要调度的情况:
-
主动放弃处理机:
- 进程正常终止
- 运行过程中发生异常而终止
- 进程主动请求阻塞(如等待I/O)
被动放弃处理机:
- 分给进程的时间片用完
- 有更紧急的事需要处理(如I/O中断)
- 有更高优先级的进程进入就绪队列
- 不能调度的情况:
-
- 中断处理过程
- 内核程序临界区(访问内核数据结构时需上锁)
- 原子操作过程
临界区区别:
- 普通临界区(如访问打印机):可调度
- 内核程序临界区:不可调度
进程调度方式
- 非剥夺调度方式:
-
- 特点:仅允许进程主动放弃CPU
- 优点:实现简单,系统开销小
- 缺点:无法及时处理紧急任务
- 适用场景:早期批处理系统
- 剥夺调度方式:
-
- 特点:操作系统可强制剥夺当前进程CPU使用权
- 优点:
- 适用场景:分时操作系统、实时操作系统
进程切换与过程
- 狭义的进程调度:
-
- 定义:从就绪队列中选择要运行的进程
- 与切换的关系:
- 广义调度:包含选择+切换两个步骤
- 进程切换的过程:
-
- 核心操作:
- 保存原进程运行环境(PC、PSW、寄存器等至PCB)
- 恢复新进程运行环境(从PCB读取数据)
- 性能影响:
- 切换需要时间开销
- 过度切换会降低系统效率
- 关键结论:并非调度越频繁并发性越高
重要考点与易混淆点
- 内核程序临界区与普通临界区的调度区别
- 进程切换需要保存/恢复运行环境
- 调度方式的选择依据(系统类型)
- "临界区不能调度"的表述需区分内核/普通
- 调度与切换的狭义/广义区分
- 非剥夺式调度导致紧急任务延迟
- 时间片轮转依赖剥夺式调度