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

为什么先占式SJF的平均等待时间保证不大于非先占式的SJF调度?

子车才捷
2023-03-14

SJF =最短的工作第一,标题不会让我适合它

抢占式SJF调度是否会使进程的平均等待时间大于在非抢占式SJF调度算法中简单执行的进程?毕竟,您不断地切换上下文并迫使进程等待更长时间才能完成。

我似乎不明白为什么是先发制人的SJF(又名。最短剩余时间优先,或STRF)优于非抢占式SJF(就进程的平均等待时间而言)。

有人能给我解释一下吗?

非常感谢。

共有1个答案

荣波
2023-03-14

假设p1(8 ms突发时间)在0 ms到达队列,在执行P1 1 ms后,另一个进程p2以4 ms突发时间进入队列。处理器将停止执行进程p1,并将开始执行进程p2。为什么?因为p1还有7毫秒来完成执行,而p1只剩下4毫秒来完成。

我认为这很清楚为什么它被称为“最短时间剩余优先”调度。因为它总是选择剩余时间最少的进程来执行。

对于你的另一个问题,为什么它更好....让我们扩展方案。

进程p1——

进程p2——

进程 p3 --

过程p4--

对于抢先式SJF,平均等待时间=[(对于p1)(10-1)(对于p2)(1-1)(对于p3)(17-2)(对于p4)(5-3)]/4 = 6.5毫秒

对于非抢占式SJF,平均等待时间=[(对于p1)(0)(对于p2)(8-1)(对于p3)(17-2)(对于p4)(12-3)]/4=7.75 ms

你可以看到为什么说抢占式比非抢占式更好,这是因为使用这种算法执行所有进程花费的时间更少。

参考:Galvin,Silberschatz,Gagne的《操作系统概念》(第8版)。

 类似资料:
  • 给定下表,用于计算基于优先级的抢占式调度的流程和平均等待时间。 甘特图如下: 我有以下问题: 1) 周转时间是否 = 19 个单位? 2)如何计算平均等待时间?有公式吗? 3)如果很少有进程具有相同的优先级,该怎么办? 我是操作系统的新手。我看过其他一些类似的问题,但我不知道该怎么做。

  • 我拿到这张桌子是为了抢先做最短工作 在G之前,它执行前有2秒,我需要包括它吗? 我在回答中用甘特图给出的表格是 我的问题是,是否可以包括F到达之前的等待时间?

  • 我对这些调度算法很熟悉。我已经习惯了SJF的非抢占性,我从纸笔甘特图的角度理解它,但从编程的角度却不太理解。我的代码在下面,虽然它运行成功,但我的数学不正确。我该如何修复它? 测试案例过程突发到达P1 20 0 P2 3 3 P3 2 5 预期输出 平均等待时间为 11.3 平均周转时间为 19.6 平均响应时间为 10.6 实际输出平均等待时间为 8.3 平均周转时间为 6.6 平均响应时间为

  • 在非先占优先级调度中,进程根据分配给它们的优先级编号进行调度。 一旦进程被安排好了,它就会运行直到完成。 通常,优先级数越低,进程的优先级越高。 人们可能会对优先级数字感到困惑,因此在GATE中,明确提到哪一个是最高优先级,哪一个是最低优先级。 示例 在例子中,有7个进程:,,,,,和。 它们的优先级,到达时间和爆发时间在表中给出。 进程ID 优先级 到达时间 爆发时间 1 2 0 3 2 6 2

  • 我的目标是计算抢占最短作业优先调度算法的平均等待时间。 假设作业的到达时间以2个单位为间隔,如0,2,4,6……即,第一个作业以0个单位进入,第二个作业在2个单位的时间后进入,以此类推。 我为我的程序测试了 3 个测试用例并得到了正确答案: 测试用例1: 作业:8,4,9,5 平均时间:6.5 测试用例2: 作业:7,4,1,4 平均时间:3 但是当我把一个有1000个作业的文件作为输入时,我得到

  • 我们知道优先级调度可以是抢占式的或非抢占式的。这两个中的哪一个通常平均等待时间最少??它们的性能会根据测试用例而变化吗??