實時系統(tǒng)中混合任務集的動態(tài)電壓調節(jié)算法
While (S不為空集){
F=Scale_WCET(S,Slowdown_Factor[]);//計算減慢因子F
重新設置Sm;
Current_Scaling_Facotr *=F;
For S中的每一個任務i {
If任務i!=服務器
Slowdown_Factor[i]=F;
}
重新設置集合S,讓集合S中所有任務的優(yōu)先級小于Sm中最低優(yōu)先級任務的優(yōu)先級;
}
}本文引用地址:http://butianyuan.cn/article/150621.htm
上面的程序通過Scale_WCET過程計算一個減慢因子,使得給定任務集中存在的一個或者多個任務的最差響應時間剛好等于它們的時限(此時該任務集剛好可調度),這樣的任務稱為“臨界任務”。Compute_Slowdown_Factors過程首先調用Scale_WCET過程計算初始任務集的同一減慢因子F;然后讓優(yōu)先級低于臨界任務的任務集繼續(xù)調用Scale_WCET過程計算出新的減慢因子。這是因為如果繼續(xù)讓作用于優(yōu)先級高于臨界任務的減慢因子F變小,則必然會導致至少有一個臨界任務超過時限,破壞了系統(tǒng)的實時性;而讓作用優(yōu)先級低于臨界任務的減慢因子F變小,則不會影響整個任務集的可調度性。這個過程將會反復執(zhí)行,直到初始任務集中的最低優(yōu)先級任務變成臨界任務??傊?,這個迭代過程為每一個任務計算出減慢因子,同時保證整個任務集是可以調度的。需要說明的是,對于服務器將不會應用靜態(tài)減慢因子,因為如果增加了服務器的運行時間,則必然會造成受服務器調度的非周期性任務的平均響應時間的增加。
3 算法驗證和仿真
本算法通過T1 OMAP1612的TCSCDMA無線終端平臺來驗證,對實時嵌入式操作系統(tǒng)Nucleus微內核進行功能上的擴充,主要是實現(xiàn)了可延期服務器(DS)和偶發(fā)服務器(SS)來對非周期性任務進行調度。同時,又整合了基于本算法的DVS模塊和CPU功率檢測模塊。
本實驗通過3種情況(沒有采用DVS算法,以及基于混合任務集的減慢因子DVS算法在DS和SS中的分別應用)分別在服務器利用率為25%、35%、45%的情況下進行了時間為60 s的實驗,得出各情況下能耗在不同服務器利用率下的關系,如圖1所示。
圖1 各種算法的能耗對比
圖1結果表明,采用基于混合任務集的減慢因子DVS算法與沒有采用DVS算法相比,能耗降低了大概19.3%~32%;同時也看到,服務器利用率越高,能耗越接近于沒有采用DVS算法所產生的能耗。這是因為為了保證非周期性任務有很短的響應時間,基于混合任務集的減慢因子DVS算法在服務器上運行時,總是以最高頻率運行,同時高服務器利用率意味著服務器會占用很大一部分CPU周期。因此,在這樣的環(huán)境下,CPU很大的一部分時間都運行在最高頻率上,導致服務器利用率越高, 越接近沒有采用DVS算法的情況。
4 結論
本文提出的針對靜態(tài)空閑間隔的靜態(tài)減慢因子算法屬于脫機(offline)的DVS算法。該算法同時把占系統(tǒng)很大部分的非周期性任務一起進行分析,把非周期性任務的服務器當作周期性任務進行動態(tài)電壓調節(jié),從而解決了非周期性任務的功耗問題,具有很大的實際意義。在保證性能的同時,降低了系統(tǒng)中的無用能耗,提高了能量的有效利用率。隨著研究的深入,還將深入到對聯(lián)機(online)情況進行動態(tài)電壓調節(jié)。
評論