在SJF(最短作业优先)调度方法中。
如何计算平均等待时间和平均周转时间?
Gannt Chart是否正确?
答案 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
这是先发制人的SJF 注意:每个进程都会在新进程到达时抢占。然后它将比较突发时间并分配具有最短突发时间的进程。但是如果两个进程具有相同的突发时间,那么首先将首先分配的进程就像FCFS一样。
答案 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算法是非抢占式的,这意味着它不会中断进程。