1 基本概念
2 三个层次
2.1 高级调度(作业调度)
2.2 中级调度(内存调度)
2.3 低级调度(进程调度)
2.4 三层次的联系对比
3 补充:七状态模型
4 进程调度的时机
4.1 什么时候需要进程调度
4.2 什么时候不能进程调度
· 若某进程还未退出内核程序临界区(例如就绪队列未被解锁)时,想要进行进程调度的相关调度程序也需要进入内核程序临界区去访问就绪队列,但就绪队列仍然被锁,所以无法进行调度。(因为对内核数据结构的上锁会影响操作系统内核进行调度等管理工作,所以要尽可能的让正在访问内核数据结构的进程尽快完成工作,让出内核临界区- - -即进程操作系统内核程序临界区中不能进行调度与切换)
· 若某进程使用打印机,此时打印机被锁,在打印机完成进程分配的工作过程中,这个进程一直在打印机的临界区,如果不允许进程调度和切换,会使CPU空闲(因为打印机等临界资源的使用不会影响操作系统内核进行管理工作,不允许调度还会使CPU空闲,所以- - -进程处于临界区时可以进行调度与切换)
5 进程调度V.S.进程切换
5.1 两者区别
5.2 进程切换的过程
5.3 注意
6 进程调度的方式
7 调度算法的性能指标
7.1 CPU利用率
7.2 系统吞吐量
7.3 周转时间
7.4 等待时间
7.5 响应时间
8 调度算法
8.1 先来先服务
8.2 短作业优先
8.2.1 短进程优先 - - 非抢占
8.2.2 最短剩余时间优先 - - 抢占
8.3 高响应比优先
8.4 时间片轮转
8.4.1 时间片大小为2
8.4.2 时间片大小为5
时间片太大 | 使得每个进程都可以在一个时间片内完成,则时间片轮转调度算法退化为先来先服务调度算法,并且会增大进程响应时间,因此时间片不能太大 |
进程调度和切换有时间代价(用于保存、恢复运行环境) | |
时间片太小 | 会导致进程切换过于频繁,系统会画大量的时间来处理进程切换,从而导致实际用于进程执行的时间比例减少,所以时间片不能太小 |
8.5 优先级
8.5.1 非抢占
8.5.2 抢占
8.6 多级反馈队列