實時排程及相關演算法

2021-10-04 20:29:39 字數 2238 閱讀 8308

引言: 隨著計算機的發展,多道程式處理的出現需要強大的排程演算法來對多工進行排程,以確定多工環境下任務的執行順序以及占有 cpu 時間。相對於靜態、不可搶占的排程方法, edf 的出現使之憑藉靈活性高、 cpu 占有率高很快成為最優的單處理器排程演算法。

實時系統是那些時間因素非常關鍵的系統。例如,計算機的乙個或多個外設發出訊號,計算機必須在一段固定時間內作出適當的反應。一些例項是:醫院裡特護病房的監控系統、飛行器中的自動駕駛儀以及核反應堆中的安全控制系統等。在這些系統中,遲到的響應即使正確,也和沒有響應一樣糟糕。

實時系統通常分為硬實時(hard real time)系統和軟實時(soft real time)系統。硬實時系統指系統要有確保的最壞情況下的服務時間,即對於事件的響應時間的截止期限是無論如何都必須得到滿足。比如航天中的宇宙飛船的控制等就是現實中這樣的系統。其他的所有有實時特性的系統都可以稱之為軟實時系統。如果明確地來說,軟實時系統就是那些從統計的角度來說,乙個任務(在下面的論述中,我們將對任務和程序不作區分)能夠得到有確保的處理時間,到達系統的事件也能夠在截止期限到來之前得到處理,但違反截止期限並不會帶來致命的錯誤,像實時多**系統就是一種軟實時系統。 這兩種系統中,實時性的獲得是通過將程式分成許多程序,而每個程序的行為都預先可知。這些程序通常生存週期都很短,往往在一秒內便執行結束。當檢測到乙個外部事件時,排程程式按滿足它們最後期限的方式排程這些程序。

實時系統要響應的事件進一步分為週期性和非週期性。乙個系統可能必須響應多個週期的事件流。根據每個事件需要多長的處理時間,系統可能根本來不及處理所有事件。例如,有m個週期性事件,事件i的週期為pi,其中每個事件需要ci秒的cpu時間來處理則只有滿足以下條件

時,才可能處理所有的負載。滿足該條件的實時系統稱作是可排程的(schedulable)。

提供必要的資訊

- 就緒時間

- 開始截止時間和完成截止時間

- 處理時間

- 資源要求

- 優先順序

系統處理能力要強

採用搶占式排程機制

具有快速切換機制

最早截止期限優先(edf)排程根據截止期限動態分配優先順序。**截止期限越早,優先順序越高;截止期限越晚,優先順序越低。**其在實時任務佇列中也就越接近隊首。排程程式每次均從該佇列中選擇第乙個任務投入執行。此演算法可用於搶占式非搶占式排程演算法。

根據 edf 策略,當乙個程序可執行時,它應向系統公布截止期限要求。優先順序可能需要進行調整,以便反映新可執行程序的截止期限。注意單調速率排程與 edf 排程的不同,前者的優先順序是固定的。

wekipedia上面對於單調速率排程(固定優先順序搶占式排程)介紹:

固定優先順序搶占式排程是實時系統中常用的排程系統。使用固定優先順序的搶占式排程,排程程式可確保在任何給定時間,處理器執行所有當前準備執行的任務中的最高優先順序任務。

在搶占式排程具有時鐘中斷任務,可提供排程的選項來切換任務於一定時期內執行時間片。該排程系統的優點是確保在比時間片更長的時間內沒有任何任務會占用處理器。但是,這種排程方案容易受到程序或執行緒鎖定的影響:由於優先順序較高的任務被賦予了優先順序,因此優先順序較低的任務可能會等待不確定的時間。解決這種情況的一種常見方法是老化,它逐漸增加了等待程序和執行緒的優先順序,以確保它們最終都將執行。

下面是edf演算法搶占式:

如果使用固定優先順序(a優先順序高):

(b優先順序高):

結合兩者出現第三種方式----搶占式edf演算法:

注意:當t=100時,b2和a5截止時間相同,但為了減少因為切換程序的系統開銷而選擇繼續原來的程序。

實時排程演算法之EDF演算法

最早截止時間優先即edf earliest deadline first 演算法 該演算法是根據任務的開始截止時間來確定任務的優先順序。截止時間愈早,其優先順序愈高。該演算法要求在系統中保持乙個實時任務就緒佇列,該佇列按各任務截止時間的早晚排序 當然,具有最早截止時間的任務排在佇列的最前面。排程程式...

3 3 實時排程

1.實時系統 指系統能夠在限定的響應時間內提供所需水平的服務。指計算的正確性不僅取決於程式的邏輯正確性,也取決於結果產生的時間,如果系統的時間約束條件得不到滿足,將會發生系統錯誤。實時任務 具有明確時間約束的計算任務,有軟 硬,隨機 週期性之分。2.實現實時排程的基本條件 3.常用的幾種實時排程演算...

實時排程類

按照posix標準的強制要求,除了 普通 程序之外,linux還支援兩種實時排程類。排程器結構使得實時程序可以平滑地整合到核心中,而無需修改核心排程器,這顯然是排程類帶來的好處。現在比較適合於回想一些很久以前討論過的事實。實時程序的特點在於其優先順序比普通程序高,對應地,其static prio值總...