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

SJF抢占式调度

薛征
2023-03-14

我拿到这张桌子是为了抢先做最短工作

JOB     ARRIVAL Burst
        TIME    Time
A       15      5
B       27      8
C       19      7
D       4       6
E       10      8   
F       52      4
G       33      10
H       38      2

在G之前,它执行前有2秒,我需要包括它吗?

我在回答中用甘特图给出的表格是

 D  E  E  A  A  C  C  B  B  H  G     F 
4 10 15 18 19 23 27 30 33 38 40 50 52 

我的问题是,是否可以包括F到达之前的等待时间?

共有1个答案

魏君博
2023-03-14

鉴于你的问题,首先我想提一下,你还没有提到过程是否是根据时间量子来评估的,这似乎是无法验证的,因为你教科书中给出的答案也违反了时间量子的概念。

如果给定的调度算法是< code >最短作业优先(SJF),我怀疑为什么答案包含两个独立的A进程。

但是,我想写这个答案。该流程列表的甘特图如下

|----|   D   |    E    |  A   |    C   |    B    | H |     G    |----|  F  |
0    4      10        18     23       30        38  40          50  52    56

所以,你的问题的答案是

“是的,我们必须考虑 2 个单元(从 50 到 52)的TIME_GAP,因为那时准备好的队列中不会有任何进程可以调度,因为所有其他进程都会在给定的时间内完全执行。”

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

  • goroutine本来是设计为协程形式,但是随着调度器的实现越来越成熟,Go在1.2版中开始引入比较初级的抢占式调度。 从一个bug说起 Go在设计之初并没考虑将goroutine设计成抢占式的。用户负责让各个goroutine交互合作完成任务。一个goroutine只有在涉及到加锁,读写通道或者主动让出CPU等操作时才会触发切换。 垃圾回收器是需要stop the world的。如果垃圾回收器想

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

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

  • SJF =最短的工作第一,标题不会让我适合它 抢占式SJF调度是否会使进程的平均等待时间大于在非抢占式SJF调度算法中简单执行的进程?毕竟,您不断地切换上下文并迫使进程等待更长时间才能完成。 我似乎不明白为什么是先发制人的SJF(又名。最短剩余时间优先,或STRF)优于非抢占式SJF(就进程的平均等待时间而言)。 有人能给我解释一下吗? 非常感谢。

  • 我目前正在制造流程线上构建模型。目的是创建一个包含多台机器和操作员的模型。操作员在多个点执行各种任务。然而,我要求操作员遵循特定的工作时间表,并在错开的时间Rest。因此,我在每个代理内创建了时间表,以定制他们的Rest时间。 我面临的问题是,我需要操作员在Rest时间暂停当前的任务。因此,我一直在探索捕捉块中的抢占功能,但未能获得我所需要的。 我将在下面说明一个示例。假设运算符正在执行“rece