3.进程的调度

三级调度

  1. 高级调度(作业调度),首次从磁盘调入内存,频率非常低(几分钟一次)
  2. 中级调度(内存调度),磁盘内存互调,提高内存利用率和系统吞吐量(换入换出)(通常以秒计算)
  3. 低级调度(进程调度),频率很高,CPU的分配(几十毫秒一次)

进程调度队列模型:

image

高级调度+低级调度队列模型:

image

三级调度队列模型:

image

调度算法

  1. FCFS(先来先服务调度):算法简单,效率低。利长不利短、利CPU不利IO,明显不适合分时系统、实时系统
  2. SJF(短作业优先调度):利短不利长(长易饥饿),但平均等待时间、平均周转时间最少
  3. 优先级调度:剥夺式优先级、非剥夺式优先级、静态优先级、动态优先级
  4. 高响应比优先调度:是FCFS和SJF的一种综合平衡(关键是理解响应比)
  5. 时间片轮转调度:时间片大小影响、分时系统(☆只能用于进程调度)
  6. 多级反馈队列调度=时间片+优先级+队列(☆只能用于进程调度)

FCFS(先来先服务调度)

算法思想:先排队先服务

调度方式:非抢占

调度时机:一个进程结束

特点:算法简单,效率低。利长不利短,利于CPU忙、不利IO忙,不适合分时系统、实时系统

案例:打印机、银行窗口

SJF(短作业优先调度)

算法思想:优先选择短作业

调度方式:非抢占式、抢占式

调度时机:程序结束、I/O阻塞、更短作业进入

特点:利短不利长(长易饥饿),不能保证紧迫作业及时运行,但平均等待时间、平均周转时间最少,吞吐量很大

优先级调度

算法思想:优先选择高优先级进程

调度方式:非抢占式、抢占式

调度时机:程序结束、I/O阻塞、更高优先级进入队列

特点:满足紧迫作业要求,适合用于实时系统中

高响应比优先调度

响应比 \(R_P=\frac{等待时间+服务(运行)时间}{服务(运行)时间}\)

算法思想:优先选择响应比高的进程

调度方式:非抢占、抢占(主要用于作业调度中)

调度时机:程序结束、I/O阻塞、更高响应比进入

特点:是FCFS和SJF的结合。既克服了饥饿,兼顾了长作业,又能让短作业先运行

  • 等待时间相同,服务时间越短,响应比越高,有利于短作业,类似SJF
  • 服务时间相同,等待时间越长,响应比越高,类似FCFS

时间片轮转调度(☆只能用于进程调度)

算法思想:分时间片轮流获取CPU

调度方式:抢占式

调度时机:时间片完

特点:时间片大小对系统性能影响很大,太大退化成FCFS算法,太小则时空开销大,适用于分时系统

多级反馈队列调度(☆只能用于进程调度)

image

算法思想:FCFS+优先级+时间片轮转

调度方式:综合

调度时机:综合

特点:短作业优先,周转时间短,长作业可得到处理

调度准则

  1. CPU利用率:\(CPU利用率=\frac{CPU工作时间}{CPU工作时间+CPU空闲等待时间}\)(尽可能忙)
  2. 系统吞吐量:单位时间内,CPU完成作业的数量(尽可能大)
  3. 周转时间:完成时间-提交时间(尽可能短)
    • \(平均周转时间=\frac{作业1的周转时间+……+作业n的周转时间}{n}\)
    • \(带权周转时间=\frac{周转时间}{实际运行时间}\)
    • \(平均带权周转时间=\frac{作业1的带权周转时间+……+作业n的带权周转时间}{n}\)
  4. 等待时间:等待CPU时间(尽可能短)
  5. 响应时间:提交请求到首次产生响应的时间
posted @ 2023-12-07 20:21  风雨zzm  阅读(11)  评论(0编辑  收藏  举报