3.进程的调度
三级调度
- 高级调度(作业调度),首次从磁盘调入内存,频率非常低(几分钟一次)
- 中级调度(内存调度),磁盘内存互调,提高内存利用率和系统吞吐量(换入换出)(通常以秒计算)
- 低级调度(进程调度),频率很高,CPU的分配(几十毫秒一次)
进程调度队列模型:
高级调度+低级调度队列模型:
三级调度队列模型:
调度算法
- FCFS(先来先服务调度):算法简单,效率低。利长不利短、利CPU不利IO,明显不适合分时系统、实时系统
- SJF(短作业优先调度):利短不利长(长易饥饿),但平均等待时间、平均周转时间最少
- 优先级调度:剥夺式优先级、非剥夺式优先级、静态优先级、动态优先级
- 高响应比优先调度:是FCFS和SJF的一种综合平衡(关键是理解响应比)
- 时间片轮转调度:时间片大小影响、分时系统(☆只能用于进程调度)
- 多级反馈队列调度=时间片+优先级+队列(☆只能用于进程调度)
FCFS(先来先服务调度)
算法思想:先排队先服务
调度方式:非抢占
调度时机:一个进程结束
特点:算法简单,效率低。利长不利短,利于CPU忙、不利IO忙,不适合分时系统、实时系统
案例:打印机、银行窗口
SJF(短作业优先调度)
算法思想:优先选择短作业
调度方式:非抢占式、抢占式
调度时机:程序结束、I/O阻塞、更短作业进入
特点:利短不利长(长易饥饿),不能保证紧迫作业及时运行,但平均等待时间、平均周转时间最少,吞吐量很大
优先级调度
算法思想:优先选择高优先级进程
调度方式:非抢占式、抢占式
调度时机:程序结束、I/O阻塞、更高优先级进入队列
特点:满足紧迫作业要求,适合用于实时系统中
高响应比优先调度
响应比 \(R_P=\frac{等待时间+服务(运行)时间}{服务(运行)时间}\)
算法思想:优先选择响应比高的进程
调度方式:非抢占、抢占(主要用于作业调度中)
调度时机:程序结束、I/O阻塞、更高响应比进入
特点:是FCFS和SJF的结合。既克服了饥饿,兼顾了长作业,又能让短作业先运行
- 等待时间相同,服务时间越短,响应比越高,有利于短作业,类似SJF
- 服务时间相同,等待时间越长,响应比越高,类似FCFS
时间片轮转调度(☆只能用于进程调度)
算法思想:分时间片轮流获取CPU
调度方式:抢占式
调度时机:时间片完
特点:时间片大小对系统性能影响很大,太大退化成FCFS算法,太小则时空开销大,适用于分时系统
多级反馈队列调度(☆只能用于进程调度)
算法思想:FCFS+优先级+时间片轮转
调度方式:综合
调度时机:综合
特点:短作业优先,周转时间短,长作业可得到处理
调度准则
- CPU利用率:\(CPU利用率=\frac{CPU工作时间}{CPU工作时间+CPU空闲等待时间}\)(尽可能忙)
- 系统吞吐量:单位时间内,CPU完成作业的数量(尽可能大)
- 周转时间:完成时间-提交时间(尽可能短)
- \(平均周转时间=\frac{作业1的周转时间+……+作业n的周转时间}{n}\)
- \(带权周转时间=\frac{周转时间}{实际运行时间}\)
- \(平均带权周转时间=\frac{作业1的带权周转时间+……+作业n的带权周转时间}{n}\)
- 等待时间:等待CPU时间(尽可能短)
- 响应时间:提交请求到首次产生响应的时间
本文来自博客园,作者:风雨zzm,转载请注明原文链接:https://www.cnblogs.com/zzmxj/p/17879252.html