【Linux】先来先服务(FCFS)优先调度算法,最短作业优先 ( SJF ) 优先调度算法(非抢占式与抢占式),高响应比优先 (HHRM)调度算法

先来先服务(FCFS)优先调度算法

FCFS: First-come first-service

最简单的调度算法,既可以用于作业调度 ,也可以用于程序调度,当作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,优先从后备队列中,选择一个或多个位于队列头部的作业,把他们调入内存,分配所需资源、创建进程,然后放入“就绪队列”,直到该进程运行到完成或发生某事件堵塞后,进程调度程序才将处理机分配给其他进程。

最短作业优先( SJF ) 优先调度算法(非抢占式与抢占式)

SJF:Shortest Job First

最短作业优先调度算法将每个进程与其下次 CPU 执行的长度关联起来。当 CPU 变为空闲时,它会被赋给具有最短 CPU 执行的进程。如果两个进程具有同样长度的 CPU 执行,那么可以由 FCFS 来处理。

注意:SJF 默认指的是非抢占式的最短作业优先调度算法

高响应比优先 (HHRN)调度算法

HHRN:Highest Response Ratio Next

是一种对CPU中央控制器响应比的分配的一种算法。HRRN是介于FCFS(先来先服务算法)与SJF(短作业优先算法)之间的折中算法,既考虑作业等待时间又考虑作业运行时间,既照顾短作业又不使长作业等待时间过长,改进了调度性能。

在这里插入图片描述

提示:

周转时间 = 完成时间 - 提交时间

平均周转时间 = 周转时间 / 作业数

带权周转时间 = 周转时间 / 执行时间

平均带权周转时间(响应比)= 带权周转时间 / 作业数

解:(1)先来先服务调度算法的平均周转时间 = [(10.5 - 8.5) + ( 12.1 - 9.2) + (12.6 - 9.4)] / 3 = 2.7(h)

最短作业优先算法的平均周转时间 = [(10.5 - 8.5) + (12.6 - 9.2) + (11 - 9.4)] / 3 = 2.3(h)

(2)由(1)知最短作业优先算法的平均周转时间 为2.3h

(3)抢占式最短作业优先算法的平均周转时间 = [(11 - 8.5) + (12.6 - 9.2) +(9.9 - 9.4) ] / 3 = 2.1(h)

在这里插入图片描述

解:(1)FCFS算法的平均周转时间 Ti = [(9 - 8) +(9.5-8.5)+(9.7-9)+(9.8-9.1)] /4=0.85(ms)

响应比R=(R1+R2+R3+R4)/4=3.375

(2)SJF算法的平均周转时间Ti=[(9.8-8)+(9-8.5)+(9.3-9)+(9.2-9.1)]/4=0.925

响应比R=(R1+R2+R3+R4)/4=1.25

猜你喜欢

转载自blog.csdn.net/ijwwio/article/details/106423114