第三章 實時排程
一,實時系統
1,指系統能夠在限定的響應時間內提供所需水平的服務。
2,指計算的正確性不僅取決於程式的邏輯正確性,也取決於結果產生的時間,如果系統的時間約束條件得不到滿足,將會發生系統出錯。
3,實時任務:具有明確時間約束的計算任務,有軟/硬,隨機/週期性之分。
硬實時任務:必須滿足任務對截止時間的要求 。
軟實時任務:聯絡著一個截止時間,但不嚴格,可偶爾錯過,不會對系統造成大的影響。
4,實現實時排程的基本條件
1)提供必要的資訊 為了實現實時排程,系統應向排程程式提供有關任務的下述資訊:
就緒時間。該任務成為就緒狀態的時間。
開始截止時間、完成截止時間。
處理時間。從開始執行到完成所需時間。
資源要求。任務執行時所需的一組資源。
優先順序。根據任務性質賦予不同優先順序。
2)系統處理能力足夠強
處理能力不足可能會出現某些實時任務不能得到及時處理,導致難以預料的後果。 如: 系統中有M個週期性的硬實時任務,處理時間為Ci,週期時間表示為Pi, 單機系統中必須滿足條件:∑( Ci / Pi )≤1
3)採用搶佔式排程機制
硬實時任務:廣泛採用搶佔機制。
小的實時系統:如能預知任務的開始截止時間,為簡化排程程式和對任務排程時所花費的系統開銷,可採用非搶佔排程機制,
4)具有快速切換機制
①,對外部中斷的快速響應能力。
利用快速硬體中斷機構,可在緊迫的外部事件請求中及時響應。
②,快速的任務分派能力。
使系統中的執行功能單位適當的小,提高切換速度。類如執行緒的思想
5,實時排程演算法的分類
1)非搶佔排程演算法
該演算法較簡單,用於一些小型實時系統或要求不太嚴格的實時系統中,又可分為:
非搶佔式輪轉排程演算法。常用於工業生產的群控系統中,要求不太嚴格。
非搶佔式優先排程演算法。要求相對嚴格,根據任務的優先順序安排等待位置。可用於有一定要求的實時控制系統中。(精心設 置可獲得百ms級的響應時間)
2)搶佔式排程演算法
較嚴格的實時系統中(t約為數十ms),選擇採用搶佔式優先權排程演算法。根據搶佔發生時間可分為:
基於時鐘:某高優先順序任務到達後並不立即搶佔,而等下一個時鐘中斷時搶佔。
立即搶佔:一旦出現外部中斷,只要當前任務未處於臨界區,就立即搶佔處理機。
二, 常用的幾種實時排程演算法
1,最早截止時間優先EDF(Earliest Deadline First)演算法
根據任務的開始截止時間來確定任務的優先順序。截止時間越早,其優先順序越高。
可能會使作業錯過,但可適用於軟實時系統
2,最低鬆弛度優先LLF(Least Laxity First)演算法
根據任務緊急(或鬆弛)的程度,來確定任務的優先順序。任務的緊急程度越高(鬆弛度值越小),優先順序就越高。
鬆弛度= 截止完成時間 – 還需執行時間 - 當前時間