如何在SJF计划中计算平均等待时间和平均周转时间?

How to calculate Average Waiting Time and average Turn-around time in SJF Scheduling?

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

enter image description here

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

甘特图是否正确?

enter image description here


甘特图是错误的...
第一过程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

enter image description here

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

enter image description here


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