• 沒有找到結果。

利用考量消耗電能 EDF 排程演算法對 M F 任務排程

此節利用動態頻率調整方式改善 EDF 排程演算法對 M F 任務的執行,目的在於使 得總消耗電能 (energy consumption) 下降的效果。考量消耗電能 EDF 排程機制演算法 的虛擬程式碼 (pseudo code) 如演算法 2所示。其內容與演算法 1相似,主要差異在演

5:

while clock < LCM do

6:

檢查目前時間是否為任務的工作抵達時間。若是,則將任務 τi 的工作 jobj 加入系統的 就緒序列 (ready queue) 中,並以 c

clock−P hasei

pi ⌋ mod Ni

j 來設定工作 jobj 的剩餘執行時間

c

remj ,cremj = c

clock−P hasei

pi ⌋ mod Ni

可以利用在執行此工作 jobj 後最近的下一個將要執行的工作 jobj+1 之抵達時間 rmin

與 jobj 之間的關係作探討,這兩個工作間的關係有以下三種狀況:(1) 工作 jobj+1在就續佇列中,jobj+1 在還沒開始執行 jobi 之前就已抵達,(2) 工作 jobj+1 將在 jobj 以最高頻率執行期間抵達,(3) 工作 jobj+1 將在 jobj 以最高頻率執行 完畢 之後抵達,

(4) 工作 jobj+1 將在 jobj 截限時間之後抵達。相關之可能性圖示可參考圖 3.2所示。針 對狀況 (1) 與 (2),如圖 3.2(a) 所示,時間點 a 和 b 是工作 jobj 的開始執行時間與在 最高頻率下執行結束時間,dj 為 jobj 絕對截限時間,我們為避免影響工作 jobj+1 的執 行,因此將不會試圖去降低工作 jobj 的執行頻率。在狀況 (3) 時,如圖 3.2(b) 所示,

代表在工作 jobj 以最高頻率下執行完後到工作 jobj+1 抵達時間前的這段時間系統將會 是閒置的,因此可以用來作降頻,工作 jobj 的理想執行頻率 f 可以利用以下式子求 得:

f = c

remj

r

min

− clock

(3.5)

clock

為目前時間。在狀況 (4) 時,如圖 3.2(c) 所示,代表在工作 jobj 在截限時間之前 皆不有其他工作抵達,所以可以用來作降頻,工作 jobj 可以使用理想頻率 f 可以利用 以下式子求得:

f = c

remj

d

j

− clock

(3.6)

我們需要強調的是式子 3.5與 3.6的結果是理想頻率,但是由於處理器的執行頻率可能 為離散式,因此需要再利用 f 來找到處理器可用頻率中最接近 f 且大於等於 f 的頻 率。我們所提出基於 EDF 的線上 (on-line) 任務節能省電機制,是當有工作即將被執 行時,我們將試圖依據就緒佇列中找出適合的執行頻率且使用未被使用空間時間來重 新調整工作的執行頻率,從演算法 3程式中,得知每個工作要執行前將有可能測試所有 處理器可運作之頻率,因此時間複雜度為 O(k),k 為處理器可運作之頻率個數。

Example 2 : 延用 Example 1 並假設處理器有兩種不同的頻率 (1 與 0.5) 可選擇,如圖 3.3,我們發現原本有 7 個單位閒置時間,經由考量消耗電能 EDF 演算法動態頻率調 整使得原本執行時間由 17 個單位時間增長為 23 個單位時間,圖中黑色部分表示調頻 後所增長的執行時間,而在時間軸 11 至 12 單位時會呈現未使用之執行時間,是因為 所找出的頻率是最接近理想最佳速度且要大於等於理想最佳速度的處裡器速度。

演算法 3 : 設定工作的執行頻率

Input: (目 前 時 間 點 clock、 jobj 的 剩 餘 執 行 時 間 cremj 、 與 絕 對 截 限 時 間 dj, 所 有 任 務

0

, .., τ

n−1)

Output: jobj 的新執行頻率

1:

令 R =

{r

0

, r

1

, .., r

n−1

} 為每個任務 τ

i 離目前時間點 clock 最近的下一個工作抵達時間點

2:

for i = 0 到 n

− 1 do

3:

利用以下式子計算任務 τi 離目前時間點 clock 最近的下一個工作抵達時間點,ri =

P hase

i+

clock−P hasepi i

⌋ ∗ p

i+ pi,P hasei 為 τi 在系統中第一個工作抵達的時間點,pi 為 其週期。

4:

令 rmin 為 R 中最小的時間點

5:

for x = 0 到 k

− 1 do

6:

if clock +cremjf

x

≤ d

j then

7: f = f

x

8:

離開 for 迴圈

9:

依序從最低 f 找出工作 jobj 中的理想執行頻率

10:

if dj

≤ r

min then

11: f =

c

rem j

dj−clock

12:

else

13: f =

c

rem j

rmin−clock

14:

if f

≥ 1 then

15:

回傳執行頻率 fmax

16:

else

17:

回傳處理器的可使用頻率中最接近 f 且大於等於 f 的頻率

時間軸

第 四 章 效能評估

在本章中,我們首先將說明實驗的相關設定,之後將探討實驗結果。

4.1 實驗相關設定

在本節中,我們將說明實驗的相關設定,為了能夠驗證我們所提出的改良式省電 EDF 效能,我們設計了一套模擬實驗,而比較的對象是傳統的 EDF 排程機制,每個 實驗結果時 100 組的實驗平均值。關於實驗中的處理器的可執行頻率設定,我們有兩 組不同的頻率設定,相關可執行頻率都以正規化,第一組:提供 5 種不同頻率上的變 化,分別是 0.15、0.4、0.6、0.8、和 1.0[7]。第二組:提供 4 種不同頻率上的變化,分 別是 0.5、0.75、0.83、和 1.0[6]。而處理器的耗能電能公式近似值 P (f ) = 0.08 + 1.52f3 瓦特 (watt)[4]。此外,在實驗中,每組實驗任務群組中的每個 M F 任務的執行時間個 數 (frames) 固定為 2、3、和 4。而每組任務群組中的工作個數則為 2 至 9。週期為 50 到 100 的隨機正整數。為了能夠觀察到任務的當極端總使用率超過 1 時,相關演算法 的效能呈現,因此我們實驗任務組的極端總使用率設定從 0.1 到 1.5。

實驗的評估準則是任務群組總消耗電能與執行時間比例。所謂總消耗電能為傳統 EDF 排程演算法或是考量有效消耗電能 EDF(改良式省電 EDF) 排程演算法在任務模 擬執行時間過程中的總消耗電能。而執行時間比例為傳統 EDF 排程演算法或是考量有 效消耗電能 EDF(改良式省電 EDF) 排程演算法在任務模擬執行過程中處理器實際用

在執行任務之工作的所有時間總和除以系統運作時間,如果處理器在某個時段並無執 行工作,則不列入計算。

4.2 實驗結果

圖 4.1為第一組處理器頻率 (5 個使用頻率) 設定的消耗電能實驗數據結果,圖 4.1(a)、圖 4.1(b)、和圖 4.1(c) 為在 9 個任務時,當任務不同執行時間個數下的消耗電 能數據,每個任務的執行時間個數分別 2、3、和 4。每張圖的 X 軸代表任務的極端總 使用率,Y 軸代表消耗電能。從圖中我們可以發現以下現象,不管是傳統的 EDF 排程 演算法或是我們所提出的考量消耗電能 EDF 排程演算法,在任何任務執行時間個數下 (也就是 2、3、和 4),可以發現極端總使用率越高則消耗電能越高,原因是當任務所分 配到的使用率遞增時,代表任務在單位時間內所需的執行的時間也大幅提升,所以當 使用率越高隨著總執行時間也隨之遞增導致總消耗電能跟著提高。而考量消耗電能的 EDF 演算法在任務極端總使用率遞增時,由 0.1 到 0.6,任務所使用的總消耗電能逐漸 和傳統的 EDF 的總消耗電能差距越來越大,表示改善程度也越來越大。原因是當總使 用率較低時,個別的任務所分配到的使用率相對較低,在週期內所需的執行時間也相 對較短,當工作要被執行時,就續佇列中很有可能只有該工作等待執行,導致可以充 分利用閒置時間,考量消耗電能的 EDF 演算法僅能選擇系統所提供最低頻率,然而系 統還會有未使用之執行時間,隨著使用率遞增,可以閒置時間會慢慢縮短,當任務總 使用率為 0.6 時,工作在執行時盡量利用最低頻率執行。但是當總使用率由 0.7 到 1.2 時,兩者之間的差異則越來越小。原因是當總使用率比較高時,個別的任務所分配到 的使用率相對較高,在週期內所需的執行時間也相對較長,導致閒置時間相對較短,

甚至由於就緒佇列中都有多個等待執行的工作機率提高,考量消耗電能的 EDF 演算法 將較難調整工作的執行頻率此外,比較圖 4.1(a)、圖 4.1(b)、和圖 4.1(c),可以發現傳 統的 EDF 排程演算法或是我們所提出的考量消耗電能 EDF 排程演算法在極端總使用 率一樣時,執行時間個數越多,則消耗電能將越低,這是因為執行時間個數越多會讓 任務的有效使用率相對變小,所以實際上處理器的負載變得較輕。

圖 4.2為第一組處理器頻率設定的處理器運用在執行工作的時間比例數據,圖

0

4.2(a)、圖 4.2(b)、和圖 4.2(c) 為在 9 個任務時,當每個任務不同執行時間個數下的實 驗結果,執行時間個數分別 2、3、和 4。每張圖的 X 軸代表任務的極端總使用率,Y 軸代表被使用的執行時間比例。從圖中我們可以發現以下現象,不管是傳統的 EDF 或 是我們所提出的考量消耗電能的 EDF 演算法,在任何任務執行時間個數下 (也就是 2、

3、和 4),可以發現極端總使用率越高,則被使用的執行時間比例也越高,原因是當任 務所分配到的使用率增加時,代表任務在週期內所需的執行的時間也大幅提升,所以 當使用率越高隨著總執行時間也隨之遞增導致總執行時間跟著提高。而考量消耗電能 的 EDF 排程演算法在任務極端總使用率慢慢遞增時,由 0.1 到 0.4,任務所使用的執 行時間比例逐漸和傳統的 EDF 的執行時間比例差距越來越大,但是當總極端使用率由 0.5 到 1.2 時,兩者之間的差距則越來越小,其理由和上述之消耗電能變化原因相同。

和圖 4.1比較,可以發現消耗電能在任務總使用率為 0.6 時改善幅度 (和傳統 EDF 排程 演算法之間的差異) 最大,而執行時間比例卻是在當任務總使用率 0.4 時最大,原因是 出在消耗電能是執行時間與使用頻率的三次方乘積,雖然執行時間改善程度較佳,但 是消耗電能的另一個元素使用頻率也影響了最後的結果。

圖 4.3為第一組處理器頻率設定的工作在截限時間前還未完成的工作比例數據,圖 4.3(a)、圖 4.3(b)、和圖 4.3(c) 為在 9 個任務時,當每個任務不的不同執行行時間個數 下的實驗結果,執行時間個數分別 2、3、和 4。每張圖的 X 軸代表任務的極端總使用 率,Y 軸代表超出截限時間比例。從實驗結果中我們可以發現以下現象,當極端總使 用率為 1.1 時,超出截限時間比例皆為 0,原因是由於任務是 M F 任務,雖然從極端 總使用率來看系統已是超載 (總使用率 >1),然而實際上卻還不是,工作可以利用其他 任務工作未使用之時間來完成執行,彼此間達到互補。當極端總使用率超過 1.2 之後,

超出截限時間比例也隨之劇增,這是因為此時系統已是超載,無法滿足大多數工作的 執行需求。因此,在之前的實驗結果中我們不呈現極端總使用率超過 1.2 的實驗數據。

圖 4.4、4.5、和 4.6分別為第一組處理器頻率設定在 7 個任務時的消耗電能實驗數 據執行時間比例數據、與超出截限時間比例數據,與圖 4.1和 4.2比較,我們可以發現,

圖 4.4、4.5、和 4.6分別為第一組處理器頻率設定在 7 個任務時的消耗電能實驗數 據執行時間比例數據、與超出截限時間比例數據,與圖 4.1和 4.2比較,我們可以發現,

相關文件