1. 程式人生 > >第三章 實時排程

第三章 實時排程

一,實時系統

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)演算法

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

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