最早的截止日期安排

时间:2011-10-01 08:21:13

标签: scheduling deadlines

我想在C中实现最早的截止日期调度,但我无法在网上找到算法..

我理解下面的例子,当时间为0时,A1和B1都到达。由于A1有最早的截止日期,因此首先安排。当A1完成时,B1给予处理器。当时间为20时,A2到达。由于A2的截止日期早于B1,因此B1中断,以便A2可以执行完成。然后当时间为30时恢复B1,当时间为40时,A3到达。然而,B1有一个较早的结束截止日期,并且允许在时间为45时执行完成。然后A3给予处理器并在时间为55时结束。但是我无法想出一个解决方案..请帮我找一个算法。 感谢..

示例图片

example http://imageshack.us/photo/my-images/840/scheduling.png/

2 个答案:

答案 0 :(得分:4)

  • 当流程完成(并且在开头)时,采用最低processTimeToDeadline - processTimeToExecute作为新当前流程的流程
  • 当新流程到达时,当且仅当newProcessTimeToDeadline - newProcessTimeToExecute < currentProcessTimeToDeadline - currentProcessTimeStillNeededToExecute
  • 替换当前流程

注意:如果您使用多个CPU执行此操作,则会获得Multiprocessor scheduling problem,即NP完成。

答案 1 :(得分:0)

以前的回答描述&#34;最早可行的截止日期&#34; (EFDF)调度程序,它完美地从qestion成像。 &#34;最早的截止日期&#34; (EDF)调度程序更简单。调度程序只是在最早的截止日期之前运行任务。这就是全部。