SJF =最短的工作第一,标题不会让我适合它
抢占式SJF调度是否会使进程的平均等待时间大于在非抢占式SJF调度算法中简单执行的进程?毕竟,您不断地切换上下文并迫使进程等待更长时间才能完成。
我似乎不明白为什么是先发制人的SJF(又名。最短剩余时间优先,或STRF)优于非抢占式SJF(就进程的平均等待时间而言)。
有人能给我解释一下吗?
非常感谢。
假设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个作业的文件作为输入时,我得到
我们知道优先级调度可以是抢占式的或非抢占式的。这两个中的哪一个通常平均等待时间最少??它们的性能会根据测试用例而变化吗??