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

作业调度算法“最早结束时间优先”的反例

钮高朗
2023-03-14

好吧,我们有贪婪的作业调度算法(调度最大数量的作业)。我们可以使用不同的技术

  1. 最短的作业优先
  2. 最早开始时间在先
  3. 首先将冲突降至最低的作业
  4. 最早的结束时间在前

我有前三种策略的反例,但我找不到第四种策略的反例。

以下是前三种方法的反例

最短的作业优先:

最早开始时间:

首先是冲突最小的工作:

这里我们可以安排4个冲突为3,4,4,3的作业,而不是3个冲突最小的作业,即2,3,3

那么,最后一个最早的结束时间的反例是什么 首先我找不到反例。那么,它总是为每组数据提供最佳解决方案吗?

更新 1 :

我有一个执行程序来执行作业,我想执行最大数量的作业。

共有1个答案

欧阳俊逸
2023-03-14

最早结束时间优先的贪婪算法给出了上述问题的最优算法。(实际上你提到的问题叫做区间调度问题)

可以使用收费论点进行证明。你将贪婪算法的输出与最优解进行比较,并认为你的解并不比最优解差。

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

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

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

  • 我已经创建了一个C程序来模拟非抢占式最短作业优先算法,但它在某些输入上有缺陷。最短作业优先算法程序接受所需数量的过程的到达和突发时间的输入,并将过程安排在两个阶段中。第一阶段涉及根据到达时间来安排节目,第二阶段根据突发时间来安排节目,假设它们的到达时间低于前一过程完成的时间。这一切最终都会被编译并显示出来。 这些是预期的结果: 这些是我通过我的程序获得的结果: 任何帮助都将不胜感激。谢谢!

  • 该算法是SJF调度的抢先版本。 在SRTF中,过程的执行可以在一段时间后停止。 在每个进程到来时,短期调度程序在可用进程列表和正在运行的进程中以最少的剩余突发时间安排进程。 一旦所有进程都在就绪队列中可用,就不会执行抢占,并且该算法将作为SJF调度工作。 当进程从执行中被移除并且下一个进程被调度时,进程的上下文被保存在进程控制块中。 该PCB在下一次执行该过程时被访问。 示例 在这个例子中,有五个

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