目录
第二章进程管理(2)
2.2 调度
2.2.1 处理机调度的概念及层次
1. 处理机调度的基本概念
- 就绪队列 → 处理机
2. 调度的三个层次
- 高级调度(作业调度)
- 中级调度(内存调度)
- 低级调度(进程调度)
(1)高级调度(作业调度)
- 作用对象:作业
- 位置变化:外存 → 内存(建立PCB)
- 使用频率:一个作业经历两次
- 运行作业:调入(由操作系统决定),一次
- 作业结束:调出,一次
(2)中级调度(内存调度)
- 作用对象:“挂起”状态的进程(引入挂起状态)
- 挂起状态:将不能运行的进程放置外存,(但对应的PCB还留在内存)
- 位置变化:外存 → 内存【激活挂起进程】【将进程设置成挂机状态貌似不叫中级调度】
- 使用频率:一个进程可被使用多次
(3)补充知识:进程的挂起态与七状态模型
- 新增加状态:就绪挂起、阻塞挂起
- 挂起与阻塞的区别:位置的不同(外存、内存)
(4)低级调度(进程调度)
- 作用对象:“就绪”状态的进程
- 位置变化:内存 → CPU
- 使用频率:使用频率最高的调度,一个进程可被使用多次
(5)三层调度的联系和对比
3. 本节整体结构
2.2.2 进程调度的时机、方式、切换与过程
【进程调度(低级调度):是处理机调度的其中一个层次】
1. 时机
(1)需要进行进程调度的情况
(2)不能进行进程调度的情况
(3)内核程序临界区与普通临界区的进程调度情况(不能进程调度的第二种情况)
-
临界资源、临界区
-
内存程序临界区【不能进行进程调度】
-
普通临界区【可以进行进程调度】
2. 进程调度的方式
- 根据进程主动 or 被动放弃处理机的划分方式
3. 进程的切换与过程
- 这里是进程的切换(涉及两个进程),不是进程状态的切换(涉及单个进程的状态)
4. 本节整体结构
2.2.3 调度算法的评价标准
1. CPU利用率
2. 系统吞吐量
3. 周转时间
-
(作业)周转时间
- 组成部分:高级调度(单次) + (就绪态 + 执行态 + 阻塞态)(多次)
- 组成部分:高级调度(单次) + (就绪态 + 执行态 + 阻塞态)(多次)
-
带权周转时间
4. 等待时间
- 针对的对象不同,开始的时机不同
5. 响应时间
2.2.4 作业/进程调度算法
- (FCFS先来先服务、SJF短作业优先、HRRN高响应比优先)
1. 学习算法思路
2. 先来先服务-FCFS(First come first sever)
-
介绍
-
例题
3. 短作业优先-SJF(Shortest Job First)
-
介绍
- 最短的平均等待时间、平均周转时间
- 最短的平均等待时间、平均周转时间
-
例题
-
非抢占式——对应进程的称为SPF
-
抢占式——SRTN
-
- 注意几个细节
4. 高响应比优先-HRRN(Highest Response Ratio Next)
-
高响应比优先是FCFS和SJF的综合
-
介绍
-
例题
5. 三种算法的对比总结
2.2.5 作业/进程调度算法
1. 学习算法思路
2. 时间片轮转-RR(Round-Robin)
-
介绍(时间片特指:处理机时间片,所以用于进程调度)
-
例题
-
【时间片 == 2的情况】
-
【时间片 == 5的情况】
-
时间片太大的问题
【时间片最小的程度:一般来说,设计时间片要让切换进程的开销占比不超过1%】
-
3. 优先级调度算法
-
介绍
-
例题
-
【非抢占例子】
-
【抢占例子】
-
-
补充
- 优先级是否可以动态变化:静态、动态优先级;
- 可以把高响应比优先算法,看作是特殊的优先级调度算法。
4. 多级反馈队列调度算法
-
介绍
- 多级反馈队列调度算法,是其他算法的折中;
- 抢占算法:注意当新进程到达时,可能会发生抢占;
- 会导致饥饿:一直由新的短进程到达,导致下级队列中的进程得不到服务。
-
例题
- 具体看视频链接(29分52秒):2.2.5_调度算法:时间片轮转、优先级、多级反馈队列_哔哩哔哩_bilibili
5. 三种算法的对比总结
2.2.6 上述6种调度算法的分类
- 只能用于进程调度的算法:
- 时间片轮转
- 多级反馈队列调度算法
- 只有抢占式的算法:
- 时间片轮转
- 多级反馈队列调度算法
- 只有非抢占式的算法:
- 先来先服务
- 高响应比优先
- 既有抢占式、也有非抢占式的算法:
- 短作业优先
- 优先级调度算法
- 会造成进程饥饿的算法:
- 短作业优先:一直有短进程/作业到达,长进程/作业得不到服务;
- 优先级调度算法:一直有高优先级进程/作业到达,之前已经到达的低优先级进程/作业得不到服务;
- 多级反馈队列调度算法:一直有新的短进程到达,导致下级队列中的进程得不到服务。
参考:
- https://www.bilibili.com/video/av70156862