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