作業系統——第三章筆記(三)(含程序排程題目)
阿新 • • 發佈:2018-11-26
實時排程
1.什麼是實時系統?
○1指系統能夠在限定的響應時間內提供所需水平的服務。
○2指計算的正確性不僅取決於程式的邏輯正確性,也取決於結果產生的時間,如果系統的時間約束條件得不到滿足,將會發生系統出錯。
實時任務:具有明確時間約束的計算任務,有軟/硬,隨機/週期性之分。
硬實時任務:必須滿足任務對截止時間的要求
軟實時任務:聯絡著一個截止時間,但不嚴格,可偶爾錯過,不會對系統造成大的影響。
實時系統的任務往往帶有某種程度的緊迫性,因而實時系統的排程有某些特殊要求。
為此引入適合的實時排程演算法
為保證系統正常工作,排程應具備下列條件
2.實現實時排程的基本條件
1)提供必要的資訊
為了實現實時排程,系統應向排程程式提供有關任務的下述資訊:
就緒時間。該任務成為就緒狀態的時間。
開始截止時間、完成截止時間。
處理時間。從開始執行到完成所需時間。
資源要求。任務執行時所需的一組資源。
優先順序。根據任務性質賦予不同優先順序。
2)系統處理能力足夠強
處理能力不足可能會出現某些實時任務不能得到及時處理,導致難以預料的後果。
如:
系統中有M個週期性的硬實時任務,處理時間為Ci,週期時間表示為Pi,
單機系統中必須滿足條件
一個系統,6個硬實時任務,週期都是50ms,每次處理時間10ms。根據公式,系統是不可排程的。10*6/50
- 提高系統處理能力的方法
增強單機系統的處理能力
採用多處理機系統
此情況下需滿足∑( Ci / Pi )≤N,N為處理機數
3)採用搶佔式排程機制
硬實時任務:廣泛採用搶佔機制。
小的實時系統:如能預知任務的開始截止時間,為簡化排程程式和對任務排程時所花費的系統開銷,可採用非搶佔排程機制。
4)具有快速切換機制
- 對外部中斷的快速響應能力。
利用快速硬體中斷機構,可在緊迫的外部事件請求中及時響應。 - 快速的任務分派能力。
使系統中的執行功能單位適當的小,提高切換速度。類如執行緒的思想
3.實時排程演算法的分類
根據實時任務的性質
硬實時排程演算法
軟實時排程演算法
按排程方式
非搶佔排程演算法
搶佔排程演算法
根據排程時間不同
靜態排程演算法
動態排程演算法
多處理機環境下
集中式排程
分散式排程
1)非搶佔排程演算法
該演算法較簡單,用於一些小型實時系統或要求不太嚴格的實時系統中,又可分為:
○1非搶佔式輪轉排程演算法。常用於工業生產的群控系統中,要求不太嚴格。
○2非搶佔式優先排程演算法。要求相對嚴格,根據任務的優先順序安排等待位置。可用於有一定要求的實時控制系統中。(精心設定可獲得百ms級的響應時間)
2)搶佔式排程演算法
較嚴格的實時系統中(t約為數十ms),選擇採用搶佔式優先權排程演算法。根據搶佔發生時間可分為:
○1基於時鐘:某高優先順序任務到達後並不立即搶佔,而等下一個時鐘中斷時搶佔。
○2立即搶佔:一旦出現外部中斷,只要當前任務未處於臨界區,就立即搶佔處理機。
4.常用的幾種實時排程演算法
目前有許多實時排程演算法,在常用的演算法中簡單介紹兩種實時排程演算法:
○1最早截止時間優先EDF(Earliest Deadline First)演算法
根據任務的開始截止時間來確定任務的優先順序。截止時間越早,其優先順序越高。
系統保持一個實時任務就緒佇列
佇列按各任務截止時間的早晚排序
排程程式總是選擇就緒佇列中的第一個任務,分配處理機使之投入執行。
新任務產生時,是否等當前程式執行完:
搶佔式/非搶佔式
可能會使作業錯過,但可適用於軟實時系統
○2最低鬆弛度優先LLF(Least Laxity First)演算法
根據任務緊急(或鬆弛)的程度,來確定任務的優先順序。任務的緊急程度越高(鬆弛度值越小),優先順序就越高。
鬆弛度= 截止完成時間 – 還需執行時間 - 當前時間
可理解為當前時刻到開始截止時刻間的差距,隨著時間的推進,這個差值逐漸變小,任務越來越緊迫。
**多處理機系統中的排程
- 多處理器系統的型別
不同角度分類
1)緊密耦合MPS和鬆弛耦合MPS
2)對稱MPS和非對稱MPS - 程序分配方式
1)對稱MPS中的程序分配方式
1.靜態分配(Static Assignment)方式
2.動態分配(Dynamic Assignment)方式
2)非對稱MPS中的程序分配方式
OS的核心部分駐留在一臺主機上,而從機上只是使用者程式,程序排程只由主機執行。主機中保持有一個就緒佇列。
每當從機空閒時向主機發一索求程序訊號,然後等待主機分配程序。 - 程序(執行緒)排程方式
自排程(Self-Scheduling)方式
成組排程(Gang Scheduling)方式
專用處理器(Dedicated Processor Assignment)分配方式
補充程序排程題目: