带权周转时间是指作业周转时间与作业实际运行时间的比。
平均带权周转时间是指多个作业的带权周转时间的平均值。n个作业的平均带权周转时间:
W =(W1+W2+ … +Wn)/n(Wi为作业i的带权周转时间)
5.2 调度算法
调度算法是指根据系统资源分配策略所规定的资源分配算法。
本章的算法有些适合作业调度,有些适合进程调度,有些适用于两者。
1.先来先服务调度算法
先来先服务算法既可用于作业调度,也可用于进程调度。
在作业调度中:从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源,创建进程,然后放入就绪队列。
进程调度中:从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或因等待某一事件而阻塞时才释放处理机。
先来先服务调度算法例
设有4道作业,它们的提交时间及执行时间如下表,若按先来先服务调度算法进行调度,试计算4个作业的平均周转时间和平均带权周转时间。(时间单位:小时,以十进制计算)。
作业周转时间及带权周转时间的计算
平均周转时间T=(2.0+2.8+3.1+3.3)/4=2.8
平均带权周转时间W=(1+2.8+6.2+11)/4=5.25
先来先服务算法特点
算法简单,易于实现,
但不利于短作业。
2.短作业(进程)优先调度算法
在作业调度中,从后备队列中选择一个或多个估计运行时间最短的作业,将它们调入内存运行。
在进程调度中,从就绪队列中选择一个估计运行时间最短的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或因等待某一事件而阻塞时才释放处理机。
短作业优先调度算法例
平均周转时间 T=(2.0+1.8+2.4+3.6)/4=2.45
平均带权周转时间 W=(1+6+4.8+3.6)/4=3.85
短作业优先调度算法的特点
算法调度性能较好,
例如上例中, 先来先服务 短作业优先
平均周转时间 2.8 2.45
平均带权周转时间 5.25 3.85
但对长作业不利,未考虑作业的紧迫程度,运行时间为估计。
最短剩余时间优先调度算法
最短进程优先调度算法可以是非抢占式的,也可以是抢占式的。若无特别说明,通常是指非抢占式的算法。
抢占式的最短进程优先调度算法也称为最短剩余时间优先调度算法,即当一个新进程进入就绪队列时,若其需要的运行时间比当前运行进程的剩余时间短,则它将抢占CPU。
最短剩余时间优先算法例
时间:
最短剩余时间优先算法例(续)
平均周转时间 T=(17+4+24+7)/4=13
平均带权周转时间 W=(2.125+1+2.67+1.4)/4=1.8
最短平均周转时间
当一批作业同时到达时,最短作业优先调度算法才能获得最短平均周转时间。
设一组作业p1、p2、…、pn,其周转时间为t1、t2、 …、tn,且假定t1 t1+(t1+t2)+ … +(t1+ … +tn) =n*t1+(n-1)t2+ … +tn 最短平均周转时间(续) 可以证明:若a1≤ a2≤ … ≤ an且b1≤b2≤ … ≤bn,则 a1bn+a2bn-1 +…+anb1 ≤ a1bi1+a2bi2 +…+anbin ≤ a1b1+a2b2 +…+anbn