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

2021-09-29 16:54:51 字數 1269 閱讀 6961

最早截止時間優先即edf(earliest deadline first)演算法

該演算法是根據任務的開始截止時間來確定任務的優先順序。截止時間愈早,其優先順序愈高。該演算法要求在系統中保持乙個實時任務就緒佇列,該佇列按各任務截止時間的早晚排序;當然,具有最早截止時間的任務排在佇列的最前面。排程程式在選擇任務時,總是選擇就緒佇列中的第乙個任務,為之分配處理機,使之投入執行。最早截止時間優先演算法既可用於搶占式排程,也可用於非搶占式排程方式中。

(1)非搶占式排程方式用於非週期實時任務

下圖示出了將該演算法用於非搶占式排程方式之例。該例子中具有四個非週期任務,它們先後到達。系統首先排程任務1執行,在任務1執行期間,任務2、3又先後到達。由於任務3的開始截止時間早於任務2,故系統在任務1後將排程任務3執行。在次期間又到達作業4,其開始截止時間仍是早於任務2的,故在任務3執行完後,系統又排程任務4執行,最後才排程任務2執行。

(2)搶占式排程方式用於週期實時任務

下圖示出了將最早截止時間優先演算法用於搶占式排程方式之例。在該例中有兩個週期性任務,任務a的週期時間為20ms,每個週期的處理時間為10ms;任務b的週期時間為50ms,每個週期的處理時間為25ms。圖中的每一行示出了兩個任務的到達時間、最後期限和執行時間圖。其中任務a的到達時間為0,20,40,···;任務a的最後期限為20,40,60,···;任務b的到達時間為0,50,100,···;任務b的最後期限為50,100,150,···。

為了說明通常的優先順序排程不能適用於實時系統,該圖特增加了第二和第三行。在第二行中假定任務a具有較高的優先順序,所以在t=0ms 時,先排程a1執行,在a1完成後(t=10ms)才排程b1執行;在t=20ms時,排程a2執行;在t=30ms時,a2完成,又排程b1執行;在t=40ms時,排程a3執行;在t=50ms時,雖然a3已完成,但b1已錯過了它的最後期限,這說明了利用通常的優先順序排程已經失敗,第三行與第二行類似,只是假定任務b具有較高的優先順序。

第四行是採用最早截止時間優先演算法的時間圖。在t=0時,a1和b1同時到達,由於a1的截止時間比b1早,故排程a1執行;在t=10時,a1完成,又排程b1執行;在t=20時,a2到達,由於a2的截止時間比b2早,b1的截止時間要比a3早,仍應讓b1繼續執行直到完成(t=45),然後再排程a3執行;在t=55時,a3完成,又排程b2執行。在該例中利用最早截止時間優先演算法可以滿足系統的要求。

實時排程及相關演算法

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

實時排程演算法之最低鬆弛度優先演算法

最低鬆弛度優先即llf least laxity first 演算法 該演算法是根據任務緊急 或鬆弛 的程度,來確定任務的優先順序。任務的緊急程度愈高,為該任務所賦予的優先順序就愈高,以使之優先執行。例如,乙個任務在200ms時必須完成,而它本身所需的執行時間就有100ms,因此,排程程式必須在10...

3 3 實時排程

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