二、實時作業系統的特徵
三、實時排程演算法分類
四、實時排程常用演算法
五、優先順序倒置
實時系統 :指能及時響應外部事件的請求,在規定時間內完成對該事件的處理,並控制所有實時任務協調一致地執行計算機系統。
(一)實時控制系統
如:飛機的自動駕駛系統,飛彈的制導系統
(二)實時資訊處理系統
如:飛機訂票系統,情報檢索系統
實時作業系統的特點:
快速進行上下文切換
實時任務小
能夠快速響應外部中斷
具有程序間通訊工具的多工處理,如訊號量、訊號和事件
快速儲存資料的檔案
使用可以快速儲存資料的特殊順序檔案
基於優先順序的搶占式排程
最小化中斷被禁用的時間間隔
將任務延遲固定時間
特殊警報和超時處理
按任務執行時是否呈現週期性劃分:
週期性實時任務
非週期性實時任務
根據截至時間的要求來劃分:
硬實時任務:
必須在最後期限內開始或完成。否則會給系統帶來不可接受的破壞或知名的錯誤。
軟實時任務:時間限制較弱。
1.確定性
操作在固定的、預定的時間或預定的時間間隔內執行。
關心作業系統在確認中斷之前延遲多長時間
2.響應性
獲得中斷訊號以後,怎麼去服務於這個事件
包括開始執行中斷的時間
包括執行中斷的時間
3.可靠性
根據實時任務性質,分為硬實時排程和軟實時排程
按排程方式,分為非搶占式排程演算法和搶占式排程演算法
(1)非搶占式輪轉排程演算法
由一台計算機控制若干個相同的(或類似的)物件,並為其建立對應的實時任務,將它們排成乙個輪轉佇列。排程程式選擇隊首任務執行,執行結束後將它掛到隊尾等待。
(2)非搶占式優先排程演算法
若在系統中還含有少量具有一定要求的實時任務,可採用非搶占式優先排程演算法。系統為這些任務賦予較高的優先順序,當這些實時任務到達時,將它們安排在就緒佇列隊首,當前任務自我終止或執行完成後,可去排程隊首的高優先程序。
(1)基於時鐘中斷的搶占式優先順序排程演算法
當某實時任務到達後,它的優先順序高於當前任務的優先順序,等到時鐘中斷發生時,排程程式才剝奪當前任務的執行,將處理機分配給新到的高優先順序任務。
(2)立即搶占的優先順序排程演算法
一旦出現外部中斷,只要當前任務未處於臨界區,立即剝奪當前任務的執行,把處理機分配給請求中斷的緊迫任務。
根據任務的截止時間確定任務的優先順序,具有最早截止時間的任務具有最高優先順序,排在隊伍的隊首。
edf演算法既可用於搶占式排程演算法中,也可用於非搶占式排程演算法中。
(1)非搶占式排程方式用於非週期實時任務
該例中,有四個非週期性任務先後到達。根據開始截止時間的早晚來排程任務執行。先排程執行任務1,任務1執行期間任務2、3先後到達,因為任務3的開始截止時間早於任務2的,故系統在任務1後先排程任務3執行。後面與此類似。
(2)搶占式排程方式用於週期性實時任務
該例中兩個週期任務a、b,其週期分別為20ms,50ms。每個週期的處理時間分別為10ms,25ms。
為了說明通常的優先順序排程不能適用於實時系統,增加第二和第三行。第二行假定任務a具有較高的優先順序,第三行假定任務b具有較高的優先順序。會出現錯過任務最後期限的問題,說明利用通常的優先順序排程失敗。
第四行採用最早截止時間優先演算法的時間圖。
該演算法確定任務優先順序根據的是任務的緊急(或鬆弛)程度。任務緊急程度越高,賦予該任務的優先順序越高,以使之優先執行。
該演算法只要用於可搶占排程方式中。
該例中有兩個週期任務a、b,任務a要求每20ms執行一次,執行時間10ms,任務b要求每50ms執行一次,執行時間25ms。
在t1=0時,鬆弛度=必須完成時間-自身執行時間-當前時間,a1的鬆弛度10ms。b1的鬆弛度為25ms,故先排程a1執行。在t2=10ms時,a2的鬆弛度為20ms,b1的鬆弛度為15ms,故先排程b1執行。後面以此類推。
在系統中存在著影響程序執行的資源而可能產生「優先順序倒置」的現象,即高優先順序(或執行緒)被低優先順序程序(或執行緒)延遲或阻塞。
不同優先順序執行緒對共享資源的訪問的同步機制。優先順序為1和3的執行緒p3和執行緒p1需要訪問共享資源,優先順序為2的執行緒p2不訪問該共享資源。當p1正在訪問共享資源時,p3等待互斥體,但是此時p1被p2搶先了,導致p2執行p3阻塞。即優先順序低的執行緒p2執行,優先順序高的p3被阻塞。
採用動態優先順序繼承方法。
當高優先順序程序p1要進入臨界區,去使用臨界資源r,如果已有乙個低優先順序程序p3正在使用該資源,此時一方面p1被阻塞,另一方面由p3繼承p1的優先順序,並一直保持到p3退出臨界區。這樣的目的在於不讓比p3優先順序稍高,但比p1優先順序低的程序如p2插進來,導致延緩p3退出臨界區。
處理機排程 實時排程
實時系統 指系統能夠在限定的響應時間內提供所需水平的服務。指計算的正確性不僅取決於程式的邏輯正確性,也取決於結果產生的時間,如果系統的時間約束條件得不到滿足,將會發生系統出錯。系統處理能力足夠強 處理能力不足可能會出現某些實時任務不能得到及時處理,導致難以預料的後果。採用搶占式排程機制 具有快速切換...
處理機排程與死鎖
1.程序排程的功能 儲存處理機的現場資訊,按某種演算法選取程序,把處理器分配給程序 2 程序排程方式 非搶占方式 一旦把處理機分配給某程序後,不管它要執行多長時間,都一直讓它執行下去,決不會因為時鐘中斷等原因而搶占正在執行程序的處理機,也不允許 其它程序搶占已經分配給它的處理機。直至該程序完成,自願...
處理機排程與死鎖
1 非搶占方式 non preemptive mode 一旦處理機分配給某程序,該程序一直執行。決不允許其他程序搶占已分配執行程序的處理機。2 搶占方式 preemptive mode 允許排程程式根據某種原則,暫停某個正在執行的程序,將處理機重新分配給另一程序。程序排程方式比較 3 中級排程 in...