如何计算SJF调度中的平均等待时间和平均周转时间?

时间:2012-03-18 13:37:25

标签: scheduling

在SJF(最短作业优先)调度方法中。

enter image description here

如何计算平均等待时间和平均周转时间?

Gannt Chart是否正确?

enter image description here

4 个答案:

答案 0 :(得分:21)

甘特图是错的...... 第一个进程P3已到达,因此它将首先执行。由于在P3完成之后P3的突发时间是3秒,所以已经到达过程P2,P4和P5。 在P2,P4和P5中,P2的最短脉冲串时间为1秒,因此P2将在下一次执行。然后是P4和P5。最后P1将被执行。

此问题的甘特图将是:

| P3 | P2 | P4 | P5 | P1 |

1    4    5    7   11   14

平均等待时间=(0 + 2 + 2 + 3 + 3)/ 5 = 2

平均周转时间=(3 + 3 + 4 + 7 + 6)/5=4.6

答案 1 :(得分:16)

SJF是两种类型 - i)非先发制人SJF ii)先发制人SJF

我已按照抵达时间重新安排了流程。 这里是非先发制人的SJF

A.T =抵达时间

B.T =突发时间

C.T =完成时间

T.T =转身时间= C.T - A.T

W.T =等待时间= T.T - B.T

enter image description here

这是先发制人的SJF 注意:每个进程都会在新进程到达时抢占。然后它将比较突发时间并分配具有最短突发时间的进程。但是如果两个进程具有相同的突发时间,那么首先将首先分配的进程就像FCFS一样。

enter image description here

答案 2 :(得分:2)

这是错的。 正确的将是

P3 P2 P4 P5 P1 0 3 4 6 10正确的差异是这些

等待时间(0 + 3 + 4 + 6 + 10)/ 5 = 4.6

参考:http://www.it.uu.se/edu/course/homepage/oskomp/vt07/lectures/scheduling_algorithms/handout.pdf

答案 3 :(得分:2)

Hifzan和Raja给出的甘特图用于FCFS算法。

使用SJF算法,可以中断进程。也就是说,每个进程不一定直接执行给定的突发时间。

P3 | P2 | P4 | P3 | P5 | P1 | P5

1 | 2 | 3 | 5 | 7 | 8 | 11 | 14

P3到达1ms,然后被P2和P4中断,因为它们都具有较小的突发时间,然后P3恢复。 P5接下来开始执行,然后被P1中断,因为P1的突发时间小于P5。您必须注意到达时间并小心。这些问题可能比它们第一眼看上去更棘手。

编辑:这仅适用于抢占式SJF算法。普通的SJF算法是非抢占式的,这意味着它不会中断进程。