【问题标题】:Scheduling: advance deadline for implicit-deadline rate monotonic algorithm调度:隐式期限率单调算法的提前期限
【发布时间】:2012-09-30 07:03:36
【问题描述】:

给定一组任务:

T1(20,100) T2(30,250) T3(100,400) (execution time, deadline=peroid)

现在我想将截止日期限制为Di = f * Pi,其中Di 是第 i 个任务的新截止日期,Pi 是第 i 个任务的原始期限,f 是我想弄清楚的因素。 f 的最小值是多少,任务将使用速率单调调度程序继续满足其截止日期?

【问题讨论】:

  • 你的问题不是很清楚..你能提供一个简单数据集的输入和相对输出的例子吗?

标签: algorithm scheduling


【解决方案1】:

此架构将每 2000 个时间单位重复(同步)一次。在此期间

  • T1 必须运行 20 次,需要 400 个时间单位。
  • T2 必须运行 8 次,需要 240 个时间单位。
  • T3 必须运行 5 次,需要 500 个时间单位。

每 2000 个时间单位间隔总共有 1140 个时间单位。

f = 1140 / 2000 = 0.57

这假设长时间运行的任务可以中断和恢复,以允许较短运行的任务在两者之间运行。否则一旦 T3 开始,T1 将无法按时完成。

更新的截止日期是:

T1(20,57)
T2(30,142.5)
T3(100,228)

这些将每 1851930 个时间单位重复一次,并且需要相同的时间来完成。


一个小的简化:在计算因子时,周期时间抵消了。这意味着您实际上不需要计算周期来获得因子:

Period = 2000
Required time = (Period / 100) * 20 + (Period / 250) * 30 + (Period / 400) * 100
f = Required time / Period = 20 / 100 + 30 / 250 + 100 / 400 = 0.57

f = Sum(Duration[i] / Period[i])

要计算周期,您可以这样做:

Period(T1,T2) = lcm(100, 250) = 500
Period(T1,T2,T3) = lcm(500, 400) = 2000

其中lcm(x,y)Least Common Multiple

【讨论】:

  • 我真的不喜欢这整件事,但我很感兴趣; These will repeat every .... 是什么意思?
  • 如果它们都计划在时间 0 同时运行,那么下一次它们将同时运行将在时间 2000。
  • 好吧,我被1851930弄糊涂了。现在我看到实数的 lcm 只能是它们的乘积。
猜你喜欢
  • 2019-04-02
  • 1970-01-01
  • 2020-02-26
  • 2014-09-11
  • 1970-01-01
  • 1970-01-01
  • 2018-04-10
  • 1970-01-01
  • 2019-07-15
相关资源
最近更新 更多