设有一组作业,它们的提交时间及运行时间如下所示:
作业号 | 提交时间 | 运行时间(分钟) |
1 | 8:00 | 70 |
2 | 8:40 | 30 |
3 | 8:50 | 10 |
4 | 9:10 | 5 |
在单CPU方式下,试计算采用先来先服务调度算法(FCFS)、最短作业优先调度算法(SJF)和响应比高者优先调度算法时的平均周转时间,并指出它们的调度顺序。
解:
- 先来先服务调度算法:
作业号 | 1 | 2 | 3 | 4 | 平均 |
到达时间 | 8:00 | 8:40 | 8:50 | 9:10 |
|
服务时间 | 70 | 30 | 10 | 5 |
|
完成时间 | 9:10 | 9:40 | 9:50 | 9:55 |
|
周转时间 | 70分钟 | 60分钟 | 60分钟 | 45分钟 | 58.75分钟 |
调度顺序:按照顺序号1 -> 2 -> 3 -> 4。
- 最短作业优先算法:
作业号 | 1 | 2 | 3 | 4 | 平均 |
到达时间 | 8:00 | 8:40 | 8:50 | 9:10 |
|
服务时间 | 70 | 30 | 10 | 5 |
|
完成时间 | 9:10 | 9:55 | 9:25 | 9:15 |
|
周转时间 | 70分钟 | 75分钟 | 35分钟 | 5分钟 | 46.25分钟 |
先完成1,等到1完成的时候,2、3、4都到了,这时候需要排序:首先是完成4,然后3,然后2,所以就是:1,4,3,2的顺序。
- 响应比高者优先调度算法:
作业号 | 1 | 2 | 3 | 4 | 平均 |
到达时间 | 8:00 | 8:40 | 8:50 | 9:10 |
|
服务时间 | 70 | 30 | 10 | 5 |
|
完成时间 | 9:10 | 9:55 | 9:20 | 9:25 |
|
周转时间 | 70分钟 | 75分钟 | 30分钟 | 15分钟 | 47.5分钟 |
先来了作业1,此时只有1,只能先完成1,等到1完成之后,2、3、4都已经到达了战场,这时候可以求解响应比:
第一次求解响应比:
作业2响应比 = 1 + 30/30 = 2;作业3响应比 = 1 + 20/10 = 3;作业4响应比 = 1 + 0/5 = 1
所以执行作业 3
第二次求解响应比:
作业2响应比 = 1 + 40/30 = 2.33333;作业4响应比 = 1 + 10 /5 = 3;
所以执行作业4
最后只剩下作业2,执行作业2