How to calculate Average Waiting Time and average Turn-around time in SJF Scheduling?
在SJF(最短的作业优先)调度方法中。
如何计算平均等待时间和平均周转时间?
甘特图是否正确?
甘特图是错误的...
第一过程P3已经到达,因此它将首先执行。由于P3的突发时间是在P3完成之后的3秒,因此已到达过程P2,P4和P5。
在P2,P4和P5中,P2的最短突发时间为1秒,因此P2将随后执行。然后是P4和P5。最后将执行P1。
此问题的甘特图将是:
1 2 3 | | 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
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一样先分配。
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的突发时间小于P5的突发时间而被P1中断。您必须记下到达时间并当心。这些问题比乍一看时要棘手。
编辑:这仅适用于Preemptive SJF算法。普通的SJF算法是非抢占式的,这意味着它不会中断进程。
这是错误的。
正确的将是
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