處理機排程與死鎖(二) 實時排程

2021-09-24 16:46:12 字數 2894 閱讀 8205

二、實時作業系統的特徵

三、實時排程演算法分類

四、實時排程常用演算法

五、優先順序倒置

實時系統 :指能及時響應外部事件的請求,在規定時間內完成對該事件的處理,並控制所有實時任務協調一致地執行計算機系統。

(一)實時控制系統

如:飛機的自動駕駛系統,飛彈的制導系統

(二)實時資訊處理系統

如:飛機訂票系統,情報檢索系統

實時作業系統的特點:

快速進行上下文切換

實時任務小

能夠快速響應外部中斷

具有程序間通訊工具的多工處理,如訊號量、訊號和事件

快速儲存資料的檔案

使用可以快速儲存資料的特殊順序檔案

基於優先順序的搶占式排程

最小化中斷被禁用的時間間隔

將任務延遲固定時間

特殊警報和超時處理

按任務執行時是否呈現週期性劃分:

週期性實時任務

非週期性實時任務

根據截至時間的要求來劃分:

硬實時任務:

必須在最後期限內開始或完成。否則會給系統帶來不可接受的破壞或知名的錯誤。

軟實時任務:時間限制較弱。

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...