调度:隐式截止时间单调算法的提前截止日期

时间:2012-09-30 07:03:37

标签: algorithm scheduling

给定一组任务:

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

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

1 个答案:

答案 0 :(得分:2)

此架构将每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