作业调度算法
先来先服务方式短作业驻留时间与长作业相同,对短作业不利。
时间片轮转法所需服务时间短的顾客响应时间将会小于所需服务时间长的顾客响应时间。
最短优先调度算法:长进程可能被饿死;不能保证紧急作业优先处理
优先权调度:抢占式和非抢占式,静态和动态最高响应比:R=(Tw+Ts)/Ts,即周转时间/运行时间
作业调度算法
(1)调度算法性能的衡量
一个调度算法性能的优劣,通常用平均周转时间或平均带权周转时间来衡量。
l 作业的周转时间是指从作业提交到作业完成之间的时间间隔。作业i的周转时间Ti可用公式表示如下:
Ti=Tei-Tsi
其中Tei为作业i的完成时间,Tsi为作业i的提交时间。
l 平均周转时间是指多个作业的周转时间的平均值。n个作业的平均周转时间T可用公式表示如下:
T=(T1+ T2 +?+ Tn)/n
l 带权周转时间是指作业周转时间与作业实际运行时间的比。作业i的带权周转时间Wi可用公式表示如下:
Wi = Ti / Tri
其中Ti为作业i的周转时间,Tri为作业i的实际运行时间。
l 平均带权周转时间是指多个作业的带权周转时间的平均值。n个作业的平均带权周转时间W可用公式表示如下:
W=(W1+ W2 +?+ Wn)/n
(2)作业调度算法
公式:
当前调度的进程的开始时间(除第一个进程之外)= 前一个调度的进程的提交时间 + 前一个调度的进程的运行时间。
当前调度的进程的
周转时间 = 完成时间 - 提交时间。
带权周转时间 = 周转时间 / ( 完成时间 - 开始时间 ) 。
平均XXXX时间的话,就不说了吧。。。
l 先来先服务(FCFS,First Come First Serve; FIFO,First In First Out)
假定有4个作业,它们的提交、运行及完成情况如表2.1所示。按先来先服务调度算法进行调度,试计算起平均周转时间和平均带权周转时间。
作业 | 提交时间 | 运行时间 | 开始时间 | 完成时间 | 周转时间 | 带权周转时间 |
1 | 8.0 | 2.0 | 8.0 | 10.0 | 2.0 | 1.0 |
2 | 8.5 | 0.5 | 10.0 | 10.5 | 2.0 | 4.0 |
3 | 9.0 | 0.1 | 10.5 | 10.6 | 1.6 | 16.0 |
4 | 9.5 | 0.2 | 10.6 | 10.8 | 1.3 | 6.5 |
作业调度顺序:1、2、3、4。 平均周转时间=(2.0 +2.0+1.6+1.3)/4=1.725
平均带权周转时间=(1.0+4.0+16.0+6.5)/4=6.875
|
2 最短作业优先法(SJF,Shortest Job First)
作业 | 提交时间 | 运行时间 | 开始时间 | 完成时间 | 周转时间 | 带权周转时间 |
1 | 8.0 | 2.0 | 8.0 | 10.0 | 2.0 | 1.0 |
2 | 8.5 | 0.5 | 10.3 | 10.8 | 2.3 | 4.6 |
3 | 9.0 | 0.1 | 10.0 | 10.1 | 1.1 | 11 |
4 | 9.5 | 0.2 | 10.1 | 10.3 | 0.8 | 4 |
作业调度顺序为:1、3、4、2。 平均周转时间=(2.0+2.3+1.1+0.8)/4=1.55 平均带权周转时间=(1.0+4.6+11+4)/4=5.15
|
3 最高响应比优先法(HRN,Highest Response–ratio Next)
HRN是在每次作业调度运行时,先计算后备作业队列中每个作业的响应比,然后挑选响应比最高者投入运行。
响应比=作业响应时间/估计运行时间
作业响应时间=作业等待时间+估计运行时间
响应比=1+作业等待时间/估计运行时间
作业 | 提交时间 | 运行时间 | 开始时间 | 完成时间 | 周转时间 | 带权周转时间 |
1 | 8.0 | 2.0 | 8.0 | 10.0 | 2.0 | 1.0 |
2 | 8.5 | 0.5 | 10.1 | 10.6 | 2.1 | 4.2 |
3 | 9.0 | 0.1 | 10.0 | 10.1 | 1.1 | 11 |
4 | 9.5 | 0.2 | 10.6 | 10.8 | 1.3 | 6.5 |
r2=1+(10.0-8.5)/0.5=4 r3=1+(10.0-9.0)/0.1=11 r4=1+(10.0-9.5)/0.2=3.5 r3>r2>r4 所以,选择作业3先运行。作业3运行0.1时间单位后于10.1时完成,此时,作业2和作业4的响应比为: r2=1+(10.1-8.5)/0.5=4.2 r4=1+(10.1-9.5)/0.2=4 r2>r4 所以,选择作业2先运行。最后运行作业4。 作业调度顺序为:1、3、2、4。 平均周转时间=(2.0+2.1+1.1+1.3)/4=1.625 平均带权周转时间=(1.0+4.2+11+6.5)/4=5.675 |