了解最短作业优先算法(非抢占式)

Understanding the Shortest Job First Algorithm (Non-preemptive)

最短作业优先算法如下图所示:

如果接下来是最短的工作first/shortest,顺序不应该是: P1 → P5 → P3 → P4 → P2 ?因为这是从最低到最高服务时间的顺序。
为什么进程2排在第二位?

我知道如果我们改用突发时间,顺序就是这样,但我不知道服务时间和突发时间之间有什么区别。

任何帮助解释该图形将不胜感激。

问题中的图像遵循正确的顺序是:

P1 → P2 → P5 → P3 → P4

解释:
P1 到达 time = 0 ,所以它会先执行。此进程的服务时间为 3。所以这个过程在time=3.

完成

time=3,只有一个进程到达,即P2。所有其他进程稍后到达。所以现在执行这个过程。此流程的服务时间为6,因此此流程在time=3+6=9.

完成

现在time=9,有P3P4P5三个进程(分别到达time= 4, 6 and 8)。由于 P5 的服务时间是 2,与 P3P4 相比是最短的,所以现在执行 P5 并在time=9+2=11.

time=11,我们有两个进程,分别是P3P4(分别到达time= 4 and 6)。由于P3的服务时间是4,比P4少,所以P4现在执行,在time= 11+4=15完成

time=15,我们只有一个进程,即P4。所以现在执行了。由于此过程的服务时间为 5,因此它在 time = 15+5 = 20

完成