处理机调度
1. 处理机调度概念¶
CPU资源的时分复用 - 进程切换
- 保存当前进程在PCB中的执行上下文
- 恢复下一个进程的执行上下文
处理机调度
从就绪队列中挑选下一个占用CPU运行的进程
如果是多处理机,还要从多个可用CPU中挑选就绪进程可使用的CPU资源
调度程序 挑选就绪进程的内核函数
- 调度策略
- 调度时机: 什么时候进行调度
调度时机
在进程/线程的生命周期中的什么时候进行调度?
内核运行调度程序的条件
- 进程从运行状态切换到等待状态,要等待某个事件,此时CPU资源空闲出来,要选择进程来运行
- 进程被终结了,需要运行新进程
对不同系统,有以下情况
- 非抢占系统
- 当前进程主动放弃CPU时
- 抢占系统
- 中断请求被服务例程响应完成时,进程会从运行态切换到就绪态
- 当前进程被抢占
- 正在运行的进程时间片用完
- 有进程从等待切换到就绪
2. 调度准则¶
2.1 调度策略¶
确定如何从就绪队列中选择下一个执行进程
处理及资源的使用模式¶
进程在CPU计算和I/O操作间交替,并且大多数CPU计算所需时间较短
调度算法指标¶
-
CPU使用率
CPU处于忙状态的时间百分比,一个进程在I/O操作时 2. 吞吐量
单位时间内完成的进程数量 3. 周转时间
进程从初始化到结束的总时间 4. 等待时间
进程在就绪队列中的总时间 5. 响应时间
从提交请求到产生相应所花费的总时间
可以分为几类
响应时间目标
- 减少响应时间: 及时处理用户的输入请求,尽快将输出反馈给用户
- 减少平均响应时间的波动: 可预测性很重要
增加吞吐量
- 增加吞吐量
- 减少开销 (上下文切换等)
- 提高系统资源利用率 (CPU I/O设备)
- 减少等待时间
公平性目标
- 每个进程占用相同CPU时间
- 每个进程等待时间相同
公平性通常会增加平均响应时间