計算機操作系統——什麼是最早截止時間優先調度算法?什麼是最低鬆弛度有限調度算法?舉例說明之~

  • 最早截止時間優先算法(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;
      • 以此類推,可得下圖:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章