一、调度算法
1)先来先服务调度算法(FCFS)
是最简单的调度算法,该算法即可用于作业调度,也可用于进程调度。当作业调度中采用该算法时,系统将按照作业到达的先后顺序来进行调度。
2)短作业优先调度算法(SJF)
SJF调度算法是以作业的长短来计算优先级,作业越短,其优先级越高。作业的长短是以作业所要求的运行时间来衡量。
3)优先级调度算法中高响应比优先调度算法(HRRN)
HRRN调度算法既考虑了作业的等待时间,又考虑了作业的运行时间,因此其既照顾了短作业,又不会使长作业的等待时间过长,从而改善了处理机调度的性能。
优先级=(等待时间+要求服务时间) / 要求服务时间
(上一作业的完成时间 - 本作业到达时间 + 服务时间) / 服务时间
周转时间:从作业被提交给系统开始到作业完成为止的这段时间间隔。即完成时间-到达时间
带权周转时间:作业的周转时间与系统为他提供服务的时间。即周转时间 / 服务时间
二、例题:
在一个系统中,有5个进程进入系统,它们的提交时间、执行时间如下表:
作业到达时刻、执行时间
进程名 | 到达时刻 | 服务时间 |
P1 | 0 | 4 |
P2 | 1 | 3 |
P3 | 2 | 3.5 |
P4 | 3 | 2 |
P5 | 4 | 1.5 |
若系统分别采用先来先服务(FCFS)调度算法、短作业优先(SJF)和最高响应比(HRRN)调度算法进行上述进程调度,试比较两种算法的周转时间和带权周转时间。
进程 情况 调度算法 | 进程名 | P1 | P2 | P3 | P4 | P5 | 平均 | ||
到达时刻 | 0 | 1 | 2 | 3 | 4 | ||||
服务时间 | 4 | 3 | 3.5 | 2 | 1.5 | ||||
FCFS | 完成时间 | 4 | 7 | 10.5 | 12.5 | 14 | ---- | ||
周转时间 | 4 | 6 | 8.5 | 9.5 | 10 | 7.6 | |||
带权周转时间 | 1 | 2 | 2.43 | 4.75 | 6.67 | 3.37 | |||
SPF | 完成时间 | 4 | 10.5 | 14 | 7.5 | 5.5 | ---- | ||
周转时间 | 4 | 9.5 | 12 | 4.5 | 1.5 | 6.3 | |||
带权周转时间 | 1 | 3.17 | 3.43 | 2.25 | 1 | 2.17 | |||
HRRN | 响应比 | ---- | 2 | 1.57 | 1.5 | 1 | ---- | ||
---- | ---- | 2.43 | 3 | 3 | |||||
---- | ---- | 3 | ---- | 4.33 | |||||
完成时间 | 4 | 7 | 14 | 9 | 10.5 | ---- | |||
周转时间 | 4 | 6 | 12 | 6 | 6.5 | 6.9 | |||
带权周转时间 | 1 | 2 | 3.43 | 3 | 4.33 | 2.75 | |||