• 沒有找到結果。

即時排程演算法

在文檔中 國立臺南大學 (頁 23-28)

第二章 文獻探討與設計考量

2.3 即時排程演算法

早期的單一處理器調度演算法的主要目的是確保任務不超過該截止期限,並且提高 系統的利用率,演算法可分為可搶占的以及不可搶占。可搶占的演算法從最簡單的排程 方式就是先到先執行(First Come First Served Scheduling)演算法簡寫為 FCFS,就是把處 理器分配給第一個要求執行的任務。FCFS 的程式很容易寫也容易瞭解。但是在 FCFS 方 法下的平均等待時間幾乎是很長的。

最早截止日優先(Early Deadline First, EDF) 調度演算法[16]以及最短剩餘時間優先 (Shortest Remaining Time First, SRTF) 調度演算法在單處理器即時系統中得到了廣泛的 應用。我們將在以下幾節中討論單處理器即時系統中的 EDF 調度演算法以及 SRTF 調

EDF 排程演算法範例:在單一處理器下設有 3 個工作任務{1, 2, 3},任務i的 抵達時間是Ci,任務i的執行時間是 ti,任務i的截止日期是Di

1 ( C1=0, t1=7, D1=18 ), 2 ( C2=3, t2=5, D2=14 ), 3( C3=4, t3=2, D3=15 )

1. 單處理器排程演算法

當時間為 0 個單位的時候任務開始,首先只有任務一到達所以先執行任務一,當時 間為 3 個單位的時候任務二抵達,由於任務二的截止日期為 14 低於任務一,所以演算 法執行搶占任務,優先執行任務二。

當時間為 4 個單位的時候任務三抵達,由於任務三的截止日期為 15 高於任務二,

所以演算法不執行搶占任務。

當時間為 8 個單位的時候任務二完成,由於任務三的截止日期為 15 低於任務一,

所以優先執行任務三。

當時間為 10 個單位的時候任務三完成,執行剩餘的任務一。

EDF 單處理器排程演算法範例結果附圖 2-3

圖 2-3. 單處理器 EDF 排程演算法

2. 雙處理器排程演算法

當時間為 0 個單位的時候任務開始,首先只有任務一到達所以處理器 P1先執行任務一。

當時間為 4 個單位的時候任務三抵達,由於任務二的截止日期為 14 低於任務三,處理 器 P2不執行搶占,由於任務三的截止日期為 15 低於任務一,所以處理器 P1執行搶占任 務,優先執行任務三。

當時間為 6 個單位的時候任務三執行完成,處理器 1 號繼續執行任務一。

當時間為 8 個單位的時候任務二執行完成。

當時間為 9 個單位的時候任務一執行完成。

EDF 雙處理器排程演算法範例結果附圖 2-4

圖 2-4. 雙處理器排程演算法

2.3.2 最短剩餘時間優先排程

最短工作優先排程演算法有最小的平均等待時間,若以等待時間評估任何一個方法 的好壞,最短工作優先排程演算法是最佳的演算法。

也就是最短工作優先排程法在理論上是最佳的演算法,但實際上是不太可行,因為 處理程序尚未執行前,無法知道或預估它使用處理器時間。

以下為 SRTF 排程演算法範例:

在單一處理器下設有 3 個工作任務{1, 2, 3},任務i的抵達時間是Ci,任務i的執行 時間是 ti,任務i的截止日期是Di

1 ( C1=0, t1=7, D1=18 ), 2 ( C2=3, t2=5, D2=14 ), 3( C3=4, t3=2, D3=15 ) ,假 設只有一個處理器。

1. 單處理器排程演算法

當時間為 0 個單位的時候任務開始,首先只有任務一到達所以先執行任務一,當時 間為 3 個單位的時候任務二抵達,由於任務二的執行時間為 5 高低於任務一剩餘時間 3,

所以演算法不執行搶占任務。

當時間為 4 個單位的時候任務三抵達,由於任務三的剩餘執行時間為 2 低於任務一 剩餘時間 3,所以演算法執行搶占任務。

當時間為 6 個單位的時候任務二完成,由於任務一的剩餘時間為 3 低於任務二,所 以優先執行任務一。

當時間為 9 個單位的時候任務一完成,執行剩餘的任務二。

單處理器排程演算法範例結果附圖 2-5。

圖 2-5. 單處理器 SRTF 排程演算法

2. 雙處理器排程演算法

當時間為 0 個單位的時候任務開始,首先只有任務 1 到達所以處理器 P1先執行任務一。

當時間為 6 個單位的時候任務三執行完成,處理器 P1繼續執行任務一。

當時間為 8 個單位的時候任務二執行完成。

當時間為9 個單位的時候任務一執行完成。

雙處理器排程演算法範例結果附圖 2-6。

圖 2-6. 雙處理器排程演算法

在文檔中 國立臺南大學 (頁 23-28)

相關文件