具有未来预测调度示例的最短作业优先(非抢先)

问题描述 投票:0回答:1

我理解最短作业(非抢占式)调度的工作原理。基本上,当CPU完成当前作业时,它将选择队列中最短的作业来执行下一个作业。

这是我在网上找到的一个例子。

SJF (non preemptive example)

我试图理解这个例子对于未来预测的SJF是什么样的。有很多关于如何计算下一个forecast [example]的例子。但我找不到一个例子来说明预测的CPU突发时间将如何用于选择下一个要执行的作业。

假设Tn是第n个工作的预测突发时间。 tn是实际的突发时间。初始预测T1 = 5,a = 0.5。

使用上面的示例,P1是第一个作业,因此CPU将立即启动。但是当P2到达2时,我们如何计算T2?

是T2 = 0.5 * T1 + 0.5 * t1?但是在2,P1尚未完成,我们怎么知道P1的实际突发时间t1?

编辑:就像@Zain Arshad提到的那样,当P1在7结束时可以计算出T2。但在7时,P2和P3都已到达。那么T2 = 0.5 * T1 + 0.5 * t1,T3 = 0.5 * T1 + 0.5 * t1?接下来执行P2和P3中的哪一个?

或者我的理解有根本问题?

operating-system scheduling
1个回答
0
投票

你的理解是正确的,直到这个:

但是在2,P1尚未完成,我们怎么知道P1的实际突发时间t1?

CPU不会立即启动,在此示例中它将在7之后选择,因为它需要先完成作业。您正在使用SJF Non-Preemptive,术语Non-Preemptive是自描述的,因为CPU不会抢占正在进行的进程,因此,它不需要在2处计算,而是等待进程完成。

© www.soinside.com 2019 - 2024. All rights reserved.