最低鬆弛度優先即llf(least laxity first)演算法
該演算法是根據任務緊急(或鬆弛)的程度,來確定任務的優先順序。任務的緊急程度愈高,為該任務所賦予的優先順序就愈高,以使之優先執行。例如,乙個任務在200ms時必須完成,而它本身所需的執行時間就有100ms,因此,排程程式必須在100ms之前排程執行,該任務的緊急程度(鬆弛程度)為100ms。又如,另一任務在400ms時必須完成,它本身需要執行150ms,則其鬆弛程度為250ms。在實現該演算法時要求系統中有乙個按鬆弛度排序的實時任務就緒佇列,鬆弛度最低的任務排在佇列最前面,排程程度總是選擇就緒佇列中的隊首任務執行。
**該演算法主要用於可搶占排程方式中。**假如在乙個實時系統中,有兩個週期性實時任務a和b,任務a要求每20ms執行一次,執行時間為10ms;任務b只要求每50ms執行一次,執行時間為25ms。由此可得知任務a和b每次必須完成的時間分別為:a1、a2、a3···和b1、b2、b3、···,見下圖,為保證不遺漏任何一次截止時間,應採用最低鬆弛度優先的搶占排程策略。
在剛開始時(t1=0),a1必須在20ms時完成,而它本身執行又需10ms,可算出a1的鬆弛度為10ms;b1必須在50ms時完成,而它本身執行就需25ms,可算出b1的鬆弛度為25ms,故排程程式應先排程a1執行,在t2=10ms時,a2的鬆弛度可按下式算出:
a2的鬆弛度 = 必須完成時間 - 其本身的執行時間 - 當前時間 = 40ms - 10ms - 10ms = 20ms
類似地,可算出b1的鬆弛度為15ms,故排程程式應選擇b2執行。在t3=30ms時,a2的鬆弛度已減為0(即40-10-30),而b1的鬆弛度為15ms(即50-5-30),於是排程程式應搶占b1d的處理機而排程a2執行。在t4=40ms時,a3的鬆弛度為10ms(即60-10-40),而b1的鬆弛度僅為5ms(即50-5-40),故又應重新排程b1執行。在t5=45ms,b1執行完成,而此時a3的鬆弛度已減為5ms(即60-10-45),而b2的鬆弛度為30ms(即100-25-45),於是又應排程a3執行。在t6=55ms時,任務a尚未進入第4週期,而任務b已進入第2週期,故再排程b2執行。在t7=70ms時,a4的鬆弛度已減至0ms(即80-10-70),而b2的鬆弛度為20ms(即100-10-70),故此時排程又應搶占b2的處理機而排程a4執行。下圖示出了具有兩個週期性實時任務的排程情況。
實時排程及相關演算法
引言 隨著計算機的發展,多道程式處理的出現需要強大的排程演算法來對多工進行排程,以確定多工環境下任務的執行順序以及占有 cpu 時間。相對於靜態 不可搶占的排程方法,edf 的出現使之憑藉靈活性高 cpu 占有率高很快成為最優的單處理器排程演算法。實時系統是那些時間因素非常關鍵的系統。例如,計算機的...
實時排程演算法之EDF演算法
最早截止時間優先即edf earliest deadline first 演算法 該演算法是根據任務的開始截止時間來確定任務的優先順序。截止時間愈早,其優先順序愈高。該演算法要求在系統中保持乙個實時任務就緒佇列,該佇列按各任務截止時間的早晚排序 當然,具有最早截止時間的任務排在佇列的最前面。排程程式...
3 3 實時排程
1.實時系統 指系統能夠在限定的響應時間內提供所需水平的服務。指計算的正確性不僅取決於程式的邏輯正確性,也取決於結果產生的時間,如果系統的時間約束條件得不到滿足,將會發生系統錯誤。實時任務 具有明確時間約束的計算任務,有軟 硬,隨機 週期性之分。2.實現實時排程的基本條件 3.常用的幾種實時排程演算...