-
最早截止時間優先算法(Earliest Deadline First,EDF)
- 定義:EDF算法是指根據任務的截止時間來確定任務的優先級的算法,任務截止時間越早,其優先級愈高。
- 作用對象:即可用於搶佔式調度方式中,也可以用於非搶佔式調度方式中。
-
非搶佔式調度方式用於非週期實時任務
- 任務1最先到達最先開始執行
- 任務1執行過程中任務2、任務3到達,由於任務3截止時間更早,其優先級愈高,所以執行完任務1後執行任務3
- 任務3執行過程中任務4到達,由於任務4截止時間更早優先級愈高,任務3執行完後執行任務4,
- 最後執行任務2
-
搶佔式調度方式用於週期實時任務
- 週期任務A,週期時間20ms,處理時間10ms
- 週期任務B,週期時間50ms,處理時間25ms
- 爲了說明通常的優先級調度不能適用於實時系統,該圖增加了固定優先級調度的第二行和第三行
- 第二行中
- 固定A,B優先級,且優先級A>B;
- 先執行A1,A1執行完後執行B1;
- B1執行了10ms後被A2搶佔;
- A2執行完後繼續執行B2;
- B2執行10ms後被A3搶佔;
- A3執行完後已經到達B2的截止時間了,但B2總共執行了20ms,很明顯低於所需處理時間25ms。
- 第三行中
- 固定A,B優先級,且優先級B>A;
- 先執行B1,B1執行完後已經過了A1的截止時間,可知A1根本就沒能執行到。
- 第四行中
- A1截止時間早於B1截止時間,先執行A1;
- A1執行完執行B1,B1執行10ms後A2到達;
- A2截止時間早於B1截止時間,先執行A2;
- A2執行完執行B1,B1執行10ms後A3到達;
- B1截止時間早於A3截止時間,繼續執行B3;
- 以此類推,每個任務有序無錯過進行,能滿足系統的要求。
-
-
最低鬆弛度優先算法(Least Laxity First,LLF)
- 定義:LLF算法是指根據任務的緊急(或鬆弛)程度來確定任務的優先級的算法,任務緊急程度愈高,其優先級就愈高。
- 作用對象:主要用於可搶佔式調度方式中。
- 任務鬆弛度計算公式:任務的鬆弛度=必須完成時間-其本身的運行時間-當前時間
- 週期性任務A,要求每20ms執行一次,執行時間爲10ms;
- 週期性任務B,要求每50ms執行一次,執行時間爲25ms;
- t=0s時,A1的鬆弛度=20ms-10ms-0ms=15ms,B1的鬆弛度=50ms-25ms-0=25ms,先執行A1;
- A1執行完後,B1的鬆弛度=50ms-25ms-10ms=15ms,A2的鬆弛度=40ms-10ms-10ms=20ms,執行B1;
- B1執行10ms後,B1的鬆弛度=50ms-25ms-20ms=5ms,A2的鬆弛度=40ms-10ms-20ms=10ms,繼續執行B1;
- 以此類推,可得下圖: