假设以下进程在指定的时间到达执行。每个进程将运行列出的时间量。
Process [Arrival Time(ms) , Burst Time(ms)]
A[0 , 5] , B[3 , 5] , C[5 , 3] , D[7 , 2]
我想绘制甘特图并计算抢占式最短作业优先调度的平均等待时间。
解决办法
http://imgur.com/fP8u61C
等待时间为2毫秒。
请告诉我这是否正确。
我怀疑的步骤是,在进程B到达的3ms时,调度程序是完成进程A还是启动进程B。
你可能必须自己做功课。
展示你的尝试,说出你的问题和你的问题。
不要等待一个完整的解决方案!
是的,你的答案是正确的。事实上,提出的问题是模棱两可的,但两种可能性都给出了相同的答案。
首先,模棱两可:最短作业优先调度通常不被认为是抢占式的。抢占式变体称为最短剩余时间第一调度(例如,请参阅维基百科上的最短作业下一个条目。然而,您的练习声明“抢占式作业优先调度”,这是模棱两可的…
然而,第二,正如您所提到的,这两种调度策略之间可能存在差异的唯一时间是在t=3
时,a和B都符合条件。但如果调度是非抢先的,当然A会继续执行。如果它是先发制人的,我们必须考虑剩余时间:A还剩2毫秒,而B还剩整个5毫秒……所以A仍然拥有CPU。
最后,等待时间为:A -
到目前为止,我们根据它们的到达时间(在FCFS调度中)调度这些进程。 但是,SJF调度算法根据其突发时间安排进程。 在SJF调度中,就绪队列中可用进程列表中的突发时间最短的进程将在下一个进行调度。 然而,预测一个过程所需的突发时间是非常困难的,因此这个算法在系统中很难实现。 SJF的优势 最大吞吐量 最低的平均等候时间和周转时间 SJF的缺点 可能会面临饥饿问题 这是不可实现的,因为一个进程的确切
我熟悉最短进程下一个调度算法(SJF),它是一种非抢先算法。但是,该算法一次只能处理一个突发时间最小的进程。是否可以一次修改为“下一个最短流程2”? 所以对于这里提到的例子: 第一行表示进程总数。随后的行表示进程ID、到达时间、突发时间。 一次有两个流程的SJF计划将按如下方式工作: 这里 Idle表示当前有多少处理器空闲。在这种情况下,有2个处理器。可以观察到,在时间< code>t=4,有2个
我正在尝试在java中编写CPU调度模拟器。进程按照顺序处理,因此应该首先处理具有最少突发时间(处理时间)的进程。在开始之前,我在ArrayList中输入所有进程,指定名称,突发时间 问题是进程有不同的到达时间。我如何编辑代码来考虑这个到达时间。 我只需要编辑代码的一部分,让我的进程具有最少的突发时间(相对于到达时间) 样本输出
我已经创建了一个C程序来模拟非抢占式最短作业优先算法,但它在某些输入上有缺陷。最短作业优先算法程序接受所需数量的过程的到达和突发时间的输入,并将过程安排在两个阶段中。第一阶段涉及根据到达时间来安排节目,第二阶段根据突发时间来安排节目,假设它们的到达时间低于前一过程完成的时间。这一切最终都会被编译并显示出来。 这些是预期的结果: 这些是我通过我的程序获得的结果: 任何帮助都将不胜感激。谢谢!
假设我有两个进程等待使用抢先最短作业优先(SJF)执行。 在 Time = 2 时,两个进程的突发时间相同,即 3。SJF 排序会运行进程 2,因为它具有更高的初始突发时间,还是会运行进程,因为它们的突发时间当前相同? 谢谢:)
所以我正在研究调度,包括FCFS和最短作业优先。我首先真的在纠结我最短的工作,我看不到我的逻辑错误。我把它打印出来,有些数字是正确的,但不是全部。我使用的测试文件包含以下文本: 我使用 任何帮助,指针或代码,将不胜感激! 编辑我认为我的问题是基于sfj函数的逻辑。对于输入,第一列是进程id,第二列是到达时间,第三列是突发时间或进程需要cpu多长时间。 我得到的输出是: 当我真正期望时: