了解最短作业优先算法(非抢占式)
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
,有P3
、P4
、P5
三个进程(分别到达time= 4, 6 and 8
)。由于 P5
的服务时间是 2
,与 P3
和 P4
相比是最短的,所以现在执行 P5
并在time=9+2=11
.
在time=11
,我们有两个进程,分别是P3
和P4
(分别到达time= 4 and 6
)。由于P3
的服务时间是4
,比P4
少,所以P4
现在执行,在time= 11+4=15
完成
在time=15
,我们只有一个进程,即P4
。所以现在执行了。由于此过程的服务时间为 5
,因此它在 time = 15+5 = 20
完成
最短作业优先算法如下图所示:
如果接下来是最短的工作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
,有P3
、P4
、P5
三个进程(分别到达time= 4, 6 and 8
)。由于 P5
的服务时间是 2
,与 P3
和 P4
相比是最短的,所以现在执行 P5
并在time=9+2=11
.
在time=11
,我们有两个进程,分别是P3
和P4
(分别到达time= 4 and 6
)。由于P3
的服务时间是4
,比P4
少,所以P4
现在执行,在time= 11+4=15
完成
在time=15
,我们只有一个进程,即P4
。所以现在执行了。由于此过程的服务时间为 5
,因此它在 time = 15+5 = 20