当前位置: 首页 > 知识库问答 >
问题:

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

吴飞语
2023-03-14

我了解最短作业优先(非抢占)调度是如何工作的。基本上,当CPU完成当前作业时,它会选择队列中最短的作业进行下一步执行。

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

我试图理解这个例子会是什么样的,如果它是对SJF未来的预测。关于如何计算下一个预测的例子有很多[举例]。但是我找不到一个例子来说明预测的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提到的,T2可以在P1在7结束时计算。但是在7点,P2和P3都到了。所以 T2 = 0.5 * T1 0.5 * t1 和 T3 = 0.5 * T1 0.5 * t1?那么接下来要执行 P2 和 P3 中的哪一个呢?

还是我的理解存在根本问题?

共有1个答案

金令秋
2023-03-14

您的理解是正确的,直到:

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

CPU不会立即启动,在本例中,它将在7点后选择,因为它需要先完成作业。您正在使用< code>SJF非抢占式。术语< code >非抢占式是自我描述性的,因为CPU不会抢占正在进行的进程,所以它不需要计算2,而是等待进程完成。

 类似资料:
  • 假设以下进程在指定的时间到达执行。每个进程将运行列出的时间量。 我想绘制甘特图并计算抢占式最短作业优先调度的平均等待时间。 解决办法 http://imgur.com/fP8u61C 等待时间为2毫秒。 请告诉我这是否正确。 我怀疑的步骤是,在进程B到达的3ms时,调度程序是完成进程A还是启动进程B。

  • 最短作业优先算法如下图所示: 如果首先是最短的作业/其次是最短的流程,那么顺序不应该是:P1 → P5 → P3 → P4 → P2吗?因为这是服务时间从低到高的顺序。< br >为什么进程2排在第二位? 我知道如果我们改用突发时间,那将是顺序,但我不知道服务时间和突发时间有什么区别。 任何有助于解释该图形的帮助都将不胜感激。

  • 假设我有两个进程等待使用抢先最短作业优先(SJF)执行。 在 Time = 2 时,两个进程的突发时间相同,即 3。SJF 排序会运行进程 2,因为它具有更高的初始突发时间,还是会运行进程,因为它们的突发时间当前相同? 谢谢:)

  • 到目前为止,我们根据它们的到达时间(在FCFS调度中)调度这些进程。 但是,SJF调度算法根据其突发时间安排进程。 在SJF调度中,就绪队列中可用进程列表中的突发时间最短的进程将在下一个进行调度。 然而,预测一个过程所需的突发时间是非常困难的,因此这个算法在系统中很难实现。 SJF的优势 最大吞吐量 最低的平均等候时间和周转时间 SJF的缺点 可能会面临饥饿问题 这是不可实现的,因为一个进程的确切

  • 嗨,伙计们。我们被分配了一个关于抢占优先调度的任务,我真的不知道如何做到这一点,因为两个或多个进程具有相同的优先级编号。 我必须做一个甘特图,计算周转时间和平均等待时间。 如果可能的话,你们能否发布一个关于如何做到这一点的分步解决方案,以便我可以研究它是如何完成的。 谢谢你们的帮助。

  • 我熟悉最短进程下一个调度算法(SJF),它是一种非抢先算法。但是,该算法一次只能处理一个突发时间最小的进程。是否可以一次修改为“下一个最短流程2”? 所以对于这里提到的例子: 第一行表示进程总数。随后的行表示进程ID、到达时间、突发时间。 一次有两个流程的SJF计划将按如下方式工作: 这里 Idle表示当前有多少处理器空闲。在这种情况下,有2个处理器。可以观察到,在时间< code>t=4,有2个