1. 程式人生 > >【作業系統】3.3實時排程

【作業系統】3.3實時排程

1.實時系統

指系統能夠在限定的響應時間內提供所需水平的服務。

2. 實現實時排程的基本條件

1)提供必要的資訊

為了實現實時排程,系統應向排程程式提供有關任務的下述資訊:

就緒時間:該任務成為就緒狀態的時間。

開始截止時間、完成截止時間

處理時間:從開始執行到完成所需時間。

資源要求:任務執行時所需的一組資源。

優先順序:根據任務性質賦予不同優先順序。

2)系統處理能力足夠強

3)採用搶佔式排程機制

4)具有快速切換機制

3. 常用的幾種實時排程演算法

a.最早截止時間優先EDF(Earliest Deadline First)演算法

1)根據任務的開始截止時間來確定任務的優先順序。 截止時間越早,其優先順序越高。

  • 系統保持一個實時任務就緒佇列
  • 佇列按各任務截止時間的早晚排序
  • 排程程式總是選擇就緒佇列中的第一個任務,分配處理機使之投入執行。

2)新任務產生時,是否等當前程式執行完:

搶佔式/非搶佔式

3)可能會使作業錯過,但可適用於軟實時系統

b.最低鬆弛度優先LLF

根據任務緊急(或鬆弛)的程度,來確定任務的優先順序。任務的緊急程度越高(鬆弛度值越小),優先順序就越高。

鬆弛度= 截止完成時間 – 還需執行時間 - 當前時間

4.程序切換髮生的時機

  • 程序執行完
  • 程序I/O阻塞
  • 新程序出現時可能的搶佔
  • 某程序鬆弛度為0時發生搶佔

有的時刻,其他併發的實時任務下一週期未到來,會出現只有一個任務的情況。