FCFS,SJF,HRRN调度算法

三种基本的调度算法

在这里插入图片描述
Tips:各类调度算法的学习思路
1.算法思想
2.算法规则
3.这种调度算法是用于做业调度仍是进程调度?
4.抢占式?非抢占式?
5.优势和缺点.
6.是否会致使饥饿:某进程/做业长期得不到服务算法

先来先服务(FCFS, First Come First Serve )

例题:各进程到达就绪队列的时间、须要的运行时间以下表所示。使用先来先服务调度算法,计算各
进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周转时间。
在这里插入图片描述
先来先服务调度算法:按照到达的前后顺序调度,事实上就是等待时间越久的越优先获得服务。性能

所以,调度顺序为: P1→P2→P3→P4学习

在这里插入图片描述
如上图所示
在这里插入图片描述
周转时间:
在这里插入图片描述
带权周转时间:
在这里插入图片描述
等待时间:设计

平均周转时间= (7+9+8+11)/4= 8.75
平均带权周转时间= (1+2.25+8+2.75)/4=3.5
平均等待时间= (0+5+7+7)/4 =4.753d

注意:本例中的进程都是纯计算型的进程,一个进程到达后要么在等待,要么在运行。若是是又有计算。
I/O操做的进程,其等待时间就是周转时间-运行时间- I/0操做的时间blog

先来先服务算法总结:
在这里插入图片描述队列

短做业优先(SJF, Shortest Job First )

在这里插入图片描述
例题:各进程到达就绪队列的时间、须要的运行时间以下表所示。使用非抢占式的短做业优先调度算法,计算各进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周
转时间。进程

在这里插入图片描述

短做业/进程优先调度算法:每次调度时选择当前已到达且运行时间最短的做业/进程。所以,调度顺序为: P1→P3→P2→P4.图片

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

对比FCFS算法的结果,显然SPF算法的平均等待/周转/带权周转时间都要更低ip

抢占式的短做业优先算法又称“最短剩余时间优先算法(SRTN)

例题:各进程到达就绪队列的时间、须要的运行时间以下表所示。使用抢占式的短做业优先调度算法,计算各进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周转时间,

在这里插入图片描述

最短剩余时间优先算法:每当有进程加入就绪队列改变时就须要调度,若是新到达的进程剩余时间比当前运行的进程剩余时间更短,则由新进程抢占处理机,当前运行进程从新回到就绪队列。另外,当一个进程完成时也须要调度.

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

对比非抢占式的短做业优先算法,显然抢占式的这几个指标又要更低

注意几个小细节:

1.若是题目中未特别说明,所提到的“短做业/进程优先算法”默认是非抢占式的

2.不少书上都会说“SJF调度算法的平均等待时间、平均周转时间最少”
严格来讲,这个表述是错误的,不严谨的。以前的例子代表,最短剩余时间优先算法获得的平均等待时间、平均周转时间还要更少应该加上一个条件“在全部进程同时可运行时,采用SJF调 度算法的平均等待时间、平均周转时间最少”;或者说“在全部进程都几乎同时到达时,采用SIF调度算法的平均等待时间、平均周转时间最少”;若是不加,上述前提条件,则应该说“抢占式的短做业/进程优先调度算法(最短剩余时间优先, SRNT算法)的平均等待时间、平均周转时间最少”

3.虽然严格来讲, SJF的平均等待时间、平均周转时间并不一- 定最少,但相比于其余算法(如FCFS) ,
SJF依然能够得到较少的平均等待时间、平均周转时间

4.若是选择题中遇到“SJF算法的平均等待时间、平均周转时间最少”的选项,那最好判断其余选项
是否是有很明显的错误,若是没有更合适的选项,那也应该选择该选项

对FCFS和SJF两种算法的思考…

FCFS算法是在每次调度的时候选择一-个等德时间最长的做业(进程)为其服务。可是没有考虑到做业的运行时间,所以致使了对短做业不友好的问题

SJF算法是选择一个执行时间最短的做业为其服务。可是又彻底不考虑各个做业的等待时间,所以致使了对长做业不友好的问题,甚至还会形成饥饿问题

能不能设计一个算法,即考虑到各个做业的等待时间,也能兼顾运行时间呢?

在这里插入图片描述

因而提出了高响应比优先(HRRN,Highest Response Ratio Next )算法

高响应比优先(HRRN,Highest Response Ratio Next )

在这里插入图片描述

高响应比优先算法:非抢占式的调度算法,只有当前运行的进程主动放弃CPU时( 正常/异常完成,或主动阻塞),才须要进.行调度,调度时计算全部就绪进程的响应比,选响应比最高的进程上处理机。
计算公式:
在这里插入图片描述

例题:各进程到达就绪队列的时间、须要的运行时间以下表所示。使用高响应比优先调度算法,计算各进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周转时间。
在这里插入图片描述

0时刻:只有P1到达就绪队列,Pr. 上处理机
7时刻(P1主动放弃CPU) :就绪队列中有P2 (响应比=(5+4)/4=2.25)、P3((3+1)/1=3)、 P4((2+4)/4=1.5),
8时刻(P3完成) : P2(2.5)、 P4(1.75)
12时刻(P2完成) :就绪队列中只剩下P4

三种算法的总结:

在这里插入图片描述

:这几种算法主要关心对用户的公平性、平均周转时间、平均等待时间等评价系统总体性能的指标,可是不关心“响应时间”,也并不区分任务的紧急程度,所以对于用户来讲,交互性很糟糕。所以这三种算法通常适合用于早期的批处理系统,固然,FCFS算法 也常结合其余的算法使用,在如今也扮演着很重要的角色。而适合用于交互式系统的调度算法将在下次介绍....

相关文章
相关标签/搜索