1. 程式人生 > >作業系統——第三章筆記(三)(含程序排程題目)

作業系統——第三章筆記(三)(含程序排程題目)

實時排程
1.什麼是實時系統?
○1指系統能夠在限定的響應時間內提供所需水平的服務。
○2指計算的正確性不僅取決於程式的邏輯正確性,也取決於結果產生的時間,如果系統的時間約束條件得不到滿足,將會發生系統出錯。
實時任務:具有明確時間約束的計算任務,有軟/硬,隨機/週期性之分。
硬實時任務:必須滿足任務對截止時間的要求
軟實時任務:聯絡著一個截止時間,但不嚴格,可偶爾錯過,不會對系統造成大的影響。
 實時系統的任務往往帶有某種程度的緊迫性,因而實時系統的排程有某些特殊要求。
為此引入適合的實時排程演算法
為保證系統正常工作,排程應具備下列條件
2.實現實時排程的基本條件
1)提供必要的資訊
為了實現實時排程,系統應向排程程式提供有關任務的下述資訊:
 就緒時間。該任務成為就緒狀態的時間。
 開始截止時間、完成截止時間。
 處理時間。從開始執行到完成所需時間。
 資源要求。任務執行時所需的一組資源。
 優先順序。根據任務性質賦予不同優先順序。
2)系統處理能力足夠強
處理能力不足可能會出現某些實時任務不能得到及時處理,導致難以預料的後果。
如:
系統中有M個週期性的硬實時任務,處理時間為Ci,週期時間表示為Pi,
單機系統中必須滿足條件

一個系統,6個硬實時任務,週期都是50ms,每次處理時間10ms。根據公式,系統是不可排程的。10*6/50

  • 提高系統處理能力的方法
     增強單機系統的處理能力
     採用多處理機系統
    此情況下需滿足∑( Ci / Pi )≤N,N為處理機數
    3)採用搶佔式排程機制
     硬實時任務:廣泛採用搶佔機制。
     小的實時系統:如能預知任務的開始截止時間,為簡化排程程式和對任務排程時所花費的系統開銷,可採用非搶佔排程機制。
    4)具有快速切換機制
  1. 對外部中斷的快速響應能力。
     利用快速硬體中斷機構,可在緊迫的外部事件請求中及時響應。
  2. 快速的任務分派能力。
     使系統中的執行功能單位適當的小,提高切換速度。類如執行緒的思想
    3.實時排程演算法的分類
     根據實時任務的性質
     硬實時排程演算法
     軟實時排程演算法
     按排程方式
     非搶佔排程演算法
     搶佔排程演算法
     根據排程時間不同
     靜態排程演算法
     動態排程演算法
     多處理機環境下
     集中式排程
     分散式排程
    1)非搶佔排程演算法
    該演算法較簡單,用於一些小型實時系統或要求不太嚴格的實時系統中,又可分為:
    ○1非搶佔式輪轉排程演算法。常用於工業生產的群控系統中,要求不太嚴格。
    ○2非搶佔式優先排程演算法。要求相對嚴格,根據任務的優先順序安排等待位置。可用於有一定要求的實時控制系統中。(精心設定可獲得百ms級的響應時間)
    2)搶佔式排程演算法
    較嚴格的實時系統中(t約為數十ms),選擇採用搶佔式優先權排程演算法。根據搶佔發生時間可分為:
    ○1基於時鐘:某高優先順序任務到達後並不立即搶佔,而等下一個時鐘中斷時搶佔。
    ○2立即搶佔:一旦出現外部中斷,只要當前任務未處於臨界區,就立即搶佔處理機。
    4.常用的幾種實時排程演算法
    目前有許多實時排程演算法,在常用的演算法中簡單介紹兩種實時排程演算法:
    ○1最早截止時間優先EDF(Earliest Deadline First)演算法
     根據任務的開始截止時間來確定任務的優先順序。截止時間越早,其優先順序越高。
     系統保持一個實時任務就緒佇列
     佇列按各任務截止時間的早晚排序
     排程程式總是選擇就緒佇列中的第一個任務,分配處理機使之投入執行。
     新任務產生時,是否等當前程式執行完:
     搶佔式/非搶佔式
     可能會使作業錯過,但可適用於軟實時系統
    ○2最低鬆弛度優先LLF(Least Laxity First)演算法
    根據任務緊急(或鬆弛)的程度,來確定任務的優先順序。任務的緊急程度越高(鬆弛度值越小),優先順序就越高。
     鬆弛度= 截止完成時間 – 還需執行時間 - 當前時間
    可理解為當前時刻到開始截止時刻間的差距,隨著時間的推進,這個差值逐漸變小,任務越來越緊迫。

**多處理機系統中的排程

  1. 多處理器系統的型別
    不同角度分類
    1)緊密耦合MPS和鬆弛耦合MPS
    2)對稱MPS和非對稱MPS
  2. 程序分配方式
    1)對稱MPS中的程序分配方式
    1.靜態分配(Static Assignment)方式
    2.動態分配(Dynamic Assignment)方式
    2)非對稱MPS中的程序分配方式
     OS的核心部分駐留在一臺主機上,而從機上只是使用者程式,程序排程只由主機執行。主機中保持有一個就緒佇列。
     每當從機空閒時向主機發一索求程序訊號,然後等待主機分配程序。
  3. 程序(執行緒)排程方式
     自排程(Self-Scheduling)方式
     成組排程(Gang Scheduling)方式
     專用處理器(Dedicated Processor Assignment)分配方式

補充程序排程題目:在這裡插入圖片描述