給定一組任務:調度:提前截止隱含截止日率單調算法
T1(20,100) T2(30,250) T3(100,400) (execution time, deadline=peroid)
現在我想以收縮期限爲Di = f * Pi
其中Di
是第i個任務的新的最後期限,Pi
是原始時期對於ith任務和f
是我想弄清楚的因素。什麼是f
的最小值,這些任務將使用速率單調調度器繼續滿足其最後期限?
給定一組任務:調度:提前截止隱含截止日率單調算法
T1(20,100) T2(30,250) T3(100,400) (execution time, deadline=peroid)
現在我想以收縮期限爲Di = f * Pi
其中Di
是第i個任務的新的最後期限,Pi
是原始時期對於ith任務和f
是我想弄清楚的因素。什麼是f
的最小值,這些任務將使用速率單調調度器繼續滿足其最後期限?
該模式將每隔2000個時間單位重複(同步)。在此期間
總計爲每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。
我真的沒有想到這件事,但我很感興趣; '你是什麼意思'這些會重複每一個....'? – nullpotent
如果他們都計劃在時間0運行simultaniusly,下一次他們將同時運行時間2000. –
好吧,我因爲'1851930'而感到困惑。現在我看到實數的lcm只能是他們的產品。 – nullpotent
你的問題不是很清楚..你能提供一個簡單的數據集輸入和相對輸出的例子嗎? – Haile