题目:
设有4道作业,它们的提交时间及执行时间如表所示,试计算在单道程序环境下,采用先来先服务调度算法和短作业优先调度算法时的平均周转时间和平均带权周转时间,并指出它们的调度顺序。
作业号 | 提交时间 | 执行时间/小时 |
1 | 10:00 | 2 |
2 | 10:20 | 1 |
3 | 10:40 | 0.5 |
4 | 10:50 | 0.4 |
先来先服务(First-Come First-Served,FCFS)调度算法是最简单的一种调度算法,它不仅可以用于高级调度,也可以用于低级调度。当在作业调度中采用该算法时,每次从作业后备队列中选择一个等待时机最长的作业调入内存,并为其分配资源,建立进程,然后放入就绪队列。
这是一种非剥夺式调度算法,易于实现,但效率不高。只顾及作业的等候时间,不考虑作业要求服务时间的长短,不利于短作业而优待长作业。
需要用到的计算公式有:
周转时间 = 完成时刻 - 作业到达时刻
带权周转时间 = 周转时间 / 服务时间
平均周转时间 = 作业周转总时间 / 作业个数
平均带权周转时间 = 带权周转时间 / 作业个数
解:
- 若采用先来先服务(FCFS)调度算法,则其调度顺序为 1、2、3、4
作业号 | 执行时间/分钟 | 到达时间/分钟 | 完成时间/分钟 | 周转时间/分钟 | 带权周转时间/分钟 |
1 | 120 | 0 | 120 | 120 | 1 |
2 | 60 | 20 | 180 | 160 | 2.67 |
3 | 30 | 40 | 210 | 170 | 5.67 |
4 | 18 | 50 | 228 | 178 | 9.89 |
平均周转时间 T=(120+160+170+178)/4=157=2.62
平均带权周转时间W=(1.0+2.67+5.67+9.89)/4=4.81
2. 若采用短作业优先调度算法,则其调度顺序为 1、4、3、2
作业号 | 执行时间/分钟 | 到达时间/分钟 | 完成时间/分钟 | 周转时间/分钟 | 带权周转时间/分钟 |
1 | 120 | 0 | 120 | 120 | 1 |
2 | 60 | 20 | 228 | 208 | 3.47 |
3 | 30 | 40 | 168 | 128 | 4.27 |
4 | 18 | 50 | 138 | 88 | 4.89 |
平均周转时间 T=(120+208+128+88)/4=136=2.27
平均带权周转时间 W=(1.0+3.47+4.27+4.89)/4=3.41