例:有4个作业A、B、C、D,它们的到达时间分别为8.00,8.50,9.00,9.50,各自要求服务时间为2.00,0.50,0.10,0.20,求分别采用FCFS和SJF调度算法,它们平均周转时间和平均带权周转时间?(只写结果不给分,需要画出如下表格,并正确填写数据。)
时间: 2024-09-13 19:07:21 浏览: 52
首先,我们需要明确FCFS(First-Come, First-Served)和SJF(Shortest Job First)两种调度算法的概念和计算方法。
1. FCFS(先来先服务)调度算法:
- 按照作业到达的顺序进行调度。
- 计算平均周转时间:(作业完成时间 - 到达时间) 的总和 / 作业数量。
- 计算平均带权周转时间:(作业周转时间 / 作业服务时间) 的总和 / 作业数量。
2. SJF(最短作业优先)调度算法:
- 每次选择当前可运行的、服务时间最短的作业进行调度。
- 如果有多个作业同时到达,则通常选择编号最小的作业。
- 计算平均周转时间和平均带权周转时间的方法与FCFS相同。
根据给定的作业信息,我们可以分别计算FCFS和SJF算法下的平均周转时间和平均带权周转时间:
作业A、B、C、D的到达时间和服务时间分别是:
```
作业 | 到达时间 | 服务时间
A | 8.00 | 2.00
B | 8.50 | 0.50
C | 9.00 | 0.10
D | 9.50 | 0.20
```
按照FCFS算法,作业的完成时间计算如下(以时间为单位):
```
作业 | 到达时间 | 服务时间 | 完成时间
A | 8.00 | 2.00 | 10.00
B | 8.50 | 0.50 | 10.50
C | 9.00 | 0.10 | 10.60
D | 9.50 | 0.20 | 10.80
```
周转时间和带权周转时间计算如下:
```
作业 | 周转时间 | 带权周转时间
A | 2.00 | 1.00
B | 2.00 | 4.00
C | 1.60 | 16.00
D | 1.30 | 6.50
```
平均周转时间为 (2.00 + 2.00 + 1.60 + 1.30) / 4 = 1.475
平均带权周转时间为 (1.00 + 4.00 + 16.00 + 6.50) / 4 = 6.875
按照SJF算法,作业的完成时间计算如下(以时间为单位):
```
作业 | 到达时间 | 服务时间 | 完成时间
A | 8.00 | 2.00 | 10.00
C | 9.00 | 0.10 | 10.10
D | 9.50 | 0.20 | 10.30
B | 8.50 | 0.50 | 10.80
```
周转时间和带权周转时间计算如下:
```
作业 | 周转时间 | 带权周转时间
A | 2.00 | 1.00
C | 1.10 | 11.00
D | 0.80 | 4.00
B | 2.30 | 4.60
```
平均周转时间为 (2.00 + 1.10 + 0.80 + 2.30) / 4 = 1.55
平均带权周转时间为 (1.00 + 11.00 + 4.00 + 4.60) / 4 = 5.15
因此,FCFS算法下的平均周转时间为1.475,平均带权周转时间为6.875;SJF算法下的平均周转时间为1.55,平均带权周转时间为5.15。
阅读全文