设有四道作业,它们的到提交时间和执行时间如下: 作业号 提交时间 运行时间 A 9.0 2.0 B 9.2 1.0 C 9.4 0.5 D 9.5 0.3 试计算在单道程序设计环境下,采用 (1)先来先服务调度算法 (2)非抢占式短作业优先调度算法 (3)抢占式短作业优先调度算法 (4)最高响应比优先调度算法 时它们的调度序列及平均周转时间和平均带权周转时间。
时间: 2024-02-10 10:35:14 浏览: 139
好的,让我来回答你的问题。
首先,让我们看一下四种调度算法的定义:
- 先来先服务调度算法(FCFS):按照作业提交的顺序进行调度,先提交的作业先执行。
- 非抢占式短作业优先调度算法(SJF):按照作业运行时间的长短进行调度,先运行时间短的作业先执行。
- 抢占式短作业优先调度算法(PSJF):按照作业运行时间的长短进行调度,但是可以在运行过程中抢占当前正在运行的作业,使更短的作业先执行。
- 最高响应比优先调度算法(HRRN):按照作业响应比的大小进行调度,响应比越高的作业先执行。
接下来我们分别对这四种算法进行计算,得出它们的调度序列、平均周转时间和平均带权周转时间。
1. 先来先服务调度算法(FCFS)
按照提交顺序进行调度,所以调度序列为:A -> B -> C -> D。计算平均周转时间和平均带权周转时间:
作业号 周转时间 带权周转时间
A 4.0 2.0
B 5.0 5.0
C 5.3 10.6
D 5.5 18.3
平均周转时间 = (4.0 + 5.0 + 5.3 + 5.5)/ 4 = 5.2
平均带权周转时间 = (2.0 + 5.0 + 10.6 + 18.3)/ 4 = 9.0
2. 非抢占式短作业优先调度算法(SJF)
按照运行时间短的作业先执行,所以调度序列为:D -> C -> B -> A。计算平均周转时间和平均带权周转时间:
作业号 周转时间 带权周转时间
D 3.3 11.0
C 3.8 7.6
B 4.8 4.8
A 6.0 3.0
平均周转时间 = (3.3 + 3.8 + 4.8 + 6.0)/ 4 = 4.975
平均带权周转时间 = (11.0 + 7.6 + 4.8 + 3.0)/ 4 = 6.35
3. 抢占式短作业优先调度算法(PSJF)
按照运行时间短的作业先执行,但可以抢占当前正在运行的作业,所以调度序列为:A -> B -> D -> C。计算平均周转时间和平均带权周转时间:
作业号 周转时间 带权周转时间
A 4.0 2.0
B 5.0 5.0
D 5.3 17.7
C 5.8 11.6
平均周转时间 = (4.0 + 5.0 + 5.3 + 5.8)/ 4 = 5.275
平均带权周转时间 = (2.0 + 5.0 + 17.7 + 11.6)/ 4 = 9.075
4. 最高响应比优先调度算法(HRRN)
按照响应比高的作业先执行,所以调度序列为:A -> B -> C -> D。计算平均周转时间和平均带权周转时间:
作业号 周转时间 带权周转时间
A 4.0 2.0
B 5.0 5.0
C 5.3 10.6
D 5.5 18.3
平均周转时间 = (4.0 + 5.0 + 5.3 + 5.5)/ 4 = 5.2
平均带权周转时间 = (2.0 + 5.0 + 10.6 + 18.3)/ 4 = 9.0
综上所述,四种调度算法的调度序列、平均周转时间和平均带权周转时间如下:
调度算法 调度序列 平均周转时间 平均带权周转时间
FCFS A -> B -> C -> D 5.2 9.0
SJF D -> C -> B -> A 4.975 6.35
PSJF A -> B -> D -> C 5.275 9.075
HRRN A -> B -> C -> D 5.2 9.0
阅读全文