本發(fā)明屬于嵌入式實(shí)時(shí)系統(tǒng)任務(wù)調(diào)度領(lǐng)域,更具體地,涉及一種基于區(qū)域劃分的嵌入式節(jié)能調(diào)度方法。
背景技術(shù):
嵌入式移動(dòng)終端己經(jīng)逐漸融入人們生活,大多數(shù)嵌入式設(shè)備通常以固定電量的鋰電池等作為電源供電而非直流供電,而其應(yīng)用背景也限制了嵌入式設(shè)備隨時(shí)充電的可能性。低能耗已然成為決定嵌入式系統(tǒng)價(jià)值的重要性能指標(biāo)。完成相同任務(wù)能耗更少,則可以極大延長(zhǎng)嵌入式移動(dòng)設(shè)備的單次充電使用時(shí)間,對(duì)提高用戶體驗(yàn)和發(fā)揮嵌入式設(shè)備實(shí)際使用價(jià)值都具有極其重要的作用。
嵌入式系統(tǒng)中運(yùn)行的應(yīng)用任務(wù)需要滿足執(zhí)行時(shí)間限制,必須在預(yù)先給定的截止期之前完成,如何有效平衡實(shí)時(shí)性調(diào)度及節(jié)能調(diào)度之間的關(guān)系是嵌入式實(shí)時(shí)計(jì)算領(lǐng)域的研究重點(diǎn)?,F(xiàn)有的嵌入式系統(tǒng)的節(jié)能管理有ERHS(Energy-saving Rate Hharmonized Schedulers)和DVFS(Dynamic Voltage and Frequency Scaling)兩種典型技術(shù)。
ERHS是在速率單調(diào)調(diào)度的基礎(chǔ)上發(fā)展起來的,任務(wù)的優(yōu)先級(jí)按截止時(shí)間來分配,截止時(shí)間短的任務(wù)優(yōu)先級(jí)高,截至?xí)r間長(zhǎng)的任務(wù)優(yōu)先級(jí)低;缺陷在于僅以任務(wù)的周期來決定優(yōu)先級(jí)容易導(dǎo)致某些周期較小但非常重要的任務(wù)錯(cuò)過截止期而無法調(diào)度的問題。
DVFS是通過調(diào)節(jié)處理器的執(zhí)行頻率來降低處理器的動(dòng)態(tài)能耗,處理器的執(zhí)行頻率隨著作用在處理器上的片載電壓變化而變化,而處理器的速度越慢,處理器的動(dòng)態(tài)能耗越少;利用DVFS技術(shù)能夠調(diào)整處理器頻率進(jìn)行節(jié)能,但降低處理器速率的弊端是造成實(shí)時(shí)任務(wù)執(zhí)行時(shí)間的增加,從而導(dǎo)致靜態(tài)能耗增加。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種基于區(qū)域劃分的嵌入式節(jié)能調(diào)度方法,其目的在于降低嵌入式實(shí)時(shí)處理器的靜態(tài)能耗。
為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,提供了一種基于區(qū)域劃分的嵌入式節(jié)能調(diào)度方法,包括如下步驟:
(1)對(duì)待調(diào)度的任務(wù)集進(jìn)行修訂,以縮短任務(wù)集中所有任務(wù)的周期與任務(wù)的工作量;
(2)根據(jù)任務(wù)運(yùn)行周期及任務(wù)集的利用率,對(duì)修訂后的每個(gè)任務(wù)設(shè)置執(zhí)行閾值;所述執(zhí)行閾值的小于任務(wù)實(shí)例周期的1/3;
(3)根據(jù)所述執(zhí)行閾值進(jìn)行任務(wù)調(diào)度:當(dāng)任務(wù)的周期區(qū)間與垛區(qū)間(Crenel-Interval,CI)的重疊區(qū)域的長(zhǎng)度大于任務(wù)的執(zhí)行閾值,則調(diào)度該任務(wù)使之在當(dāng)前的垛區(qū)間中完成;否則,將該任務(wù)調(diào)度到下一個(gè)垛區(qū)間中執(zhí)行;
其中,CI是通過對(duì)調(diào)度序列進(jìn)行區(qū)間劃分而形成的形狀類似垛的劃分區(qū)間,CI的兩端為Crenel-Point(CP);對(duì)于單個(gè)CI,任務(wù)被調(diào)度到CI的兩端執(zhí)行,從而使得CI的中間區(qū)域具有較長(zhǎng)的空閑時(shí)間片段用于處理器狀態(tài)轉(zhuǎn)換。
優(yōu)選地,上述基于區(qū)域劃分的嵌入式節(jié)能調(diào)度方法,其步驟(3)包括如下子步驟:
(3.1)獲取任務(wù)的最壞完成時(shí)刻tj;
(3.2)比較任務(wù)的預(yù)估完成時(shí)間與最壞完成時(shí)間,當(dāng)預(yù)估完成時(shí)間大于最壞完成時(shí)間,則進(jìn)入步驟(3.3);
當(dāng)預(yù)估完成時(shí)間等于最壞完成時(shí)間,則進(jìn)入步驟(3.4);
當(dāng)預(yù)估完成時(shí)間小于最壞完成時(shí)間,則進(jìn)入步驟(3.5);
(3.3)根據(jù)任務(wù)執(zhí)行所需的時(shí)間判斷任務(wù)是否可延期處理,若是,則進(jìn)入步驟(3.4);若否,則進(jìn)入步驟(3.6);
(3.4)將任務(wù)加入到延時(shí)任務(wù)集,并進(jìn)入步驟(3.7);
(3.5)判斷預(yù)估剩余時(shí)間是否大于所述執(zhí)行閾值,若是,則進(jìn)入步驟(3.4);若否,則進(jìn)入步驟(3.6);
(3.6)增加可執(zhí)行任務(wù)總和,并進(jìn)入步驟(3.7);
(3.7)獲取任務(wù)的起始時(shí)間點(diǎn)。
總體而言,通過本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,能夠獲得以下有益效果:
(1)本發(fā)明提供的基于區(qū)域劃分的嵌入式節(jié)能調(diào)度方法,通過執(zhí)行閾值進(jìn)行任務(wù)調(diào)度,部分任務(wù)實(shí)例被推遲執(zhí)行,將系統(tǒng)中小的空閑時(shí)間片段合并,從而確保每個(gè)CI中最多只有一個(gè)連續(xù)的空閑時(shí)間片段;通過增加空閑時(shí)間片段的平均長(zhǎng)度,以獲得足夠長(zhǎng)的空閑時(shí)間用于完成嵌入式處理器的休眠狀態(tài)轉(zhuǎn)換,同時(shí)保證嵌入式系統(tǒng)實(shí)時(shí)任務(wù)調(diào)度滿足周期性及截止期的約束,從而有效降低處理器的工作負(fù)載以達(dá)到節(jié)能目的;
(2)本發(fā)明提供的基于區(qū)域劃分的嵌入式節(jié)能調(diào)度方法,對(duì)調(diào)度序列進(jìn)行區(qū)間劃分,并在劃分后的區(qū)間中調(diào)度任務(wù)集,可以簡(jiǎn)化調(diào)度的復(fù)雜性;而另一方面,其調(diào)度序列劃分的CI個(gè)數(shù)越少,整個(gè)調(diào)度過程中的空閑時(shí)間片段的長(zhǎng)度越長(zhǎng);當(dāng)系統(tǒng)中的空閑時(shí)間片段平均長(zhǎng)度越長(zhǎng),系統(tǒng)中能夠用于節(jié)能的空閑時(shí)間片段越多,其節(jié)能效果也越好;
相比較而言,現(xiàn)有技術(shù)的DVFS方法,雖然能夠降低動(dòng)態(tài)能耗,但是處理器的靜態(tài)功耗卻在增加;而本發(fā)明通過將更多的空閑時(shí)間片段集中,形成大的空閑時(shí)間段以用于將處理器轉(zhuǎn)換為低能耗狀態(tài),而低能耗狀態(tài)下的靜態(tài)功耗也會(huì)降低,由此起到節(jié)能的效果;
現(xiàn)有技術(shù)的ERHS方法,最小周期長(zhǎng)度越小的任務(wù)被調(diào)度的可能性越??;隨著任務(wù)集的利用率的增大,ERHS的可調(diào)度驗(yàn)證條件越不容易滿足;而本發(fā)明提供的這種調(diào)度方法則沒有這些限制,所有的任務(wù)集都可以被調(diào)度,可適用更多的周期性任務(wù)集。
附圖說明
圖1為實(shí)施例提供的基于區(qū)域劃分的嵌入式節(jié)能調(diào)度方法的流程示意圖;
圖2實(shí)施例中的任務(wù)分配步驟的流程示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
實(shí)施例中提供的基于區(qū)域劃分的嵌入式節(jié)能調(diào)度方法的流程如圖1所示意的,包括如下步驟:
(1)對(duì)待調(diào)度的任務(wù)集進(jìn)行修訂,以縮短任務(wù)集中所有任務(wù)的周期與任務(wù)的工作量;
(2)根據(jù)任務(wù)運(yùn)行周期及任務(wù)集的利用率,對(duì)修訂后的每個(gè)任務(wù)設(shè)置執(zhí)行閾值;該執(zhí)行閾值小于任務(wù)實(shí)例周期的1/3;
(3)根據(jù)所述執(zhí)行閾值進(jìn)行任務(wù)調(diào)度:當(dāng)任務(wù)的周期區(qū)間與CI的重疊區(qū)域的長(zhǎng)度大于任務(wù)的執(zhí)行閾值,則調(diào)度該任務(wù)使之在當(dāng)前的垛區(qū)間中完成;否則,將該任務(wù)調(diào)度到下一個(gè)垛區(qū)間中執(zhí)行。
通過對(duì)任務(wù)集τ'={τ'1,...τ'n}進(jìn)行修訂,將其轉(zhuǎn)換為τ={τ1,...τn};將該任務(wù)集中較長(zhǎng)的任務(wù)轉(zhuǎn)換為較短的任務(wù)(將任務(wù)的周期和任務(wù)的工作量同時(shí)縮短相應(yīng)的倍數(shù)),從而保證整個(gè)任務(wù)集的最終利用率保持不變;
轉(zhuǎn)換后的任務(wù)集中,任務(wù)的周期截止時(shí)間任務(wù)的利用率
轉(zhuǎn)換獲得的任務(wù)集中的任務(wù)的周期都滿足條件:T1≤Ti≤2T1(1≤i≤n);
其中,C'i是指任務(wù)集τ'的最壞執(zhí)行時(shí)間;T'i是任務(wù)集τ'的周期;T1是指任務(wù)實(shí)例τ1的周期,是周期轉(zhuǎn)換的倍數(shù),i是指任務(wù)的編號(hào),n是指任務(wù)集的任務(wù)實(shí)例的數(shù)量;
根據(jù)執(zhí)行閾值進(jìn)行任務(wù)調(diào)度,計(jì)算任務(wù)τ中所有可選任務(wù)開始執(zhí)行的時(shí)刻點(diǎn),其流程如圖2所示,具體如下
(1)計(jì)算任務(wù)的預(yù)估的最壞執(zhí)行時(shí)間tj;
(2)判斷每個(gè)任務(wù)是否能在區(qū)間CIj中執(zhí)行,具體如下:
(a)如果任務(wù)τi的預(yù)估執(zhí)行時(shí)間小于其最壞執(zhí)行時(shí)間tj;則進(jìn)一步比較預(yù)估執(zhí)行時(shí)間與執(zhí)行閾值UTi的大??;若預(yù)估執(zhí)行時(shí)間大,則判定任務(wù)實(shí)例τi為擬推遲執(zhí)行的實(shí)例,否則,判定實(shí)例τi為強(qiáng)制任務(wù),應(yīng)在當(dāng)前垛區(qū)間CIj中執(zhí)行;記錄可執(zhí)行任務(wù)需要執(zhí)行的總時(shí)間;
(b)如果任務(wù)τi的預(yù)估執(zhí)行時(shí)間等于其最壞執(zhí)行時(shí)間tj;則判定該任務(wù)τi為可延遲執(zhí)行的任務(wù);
(c)如果任務(wù)τi的預(yù)估執(zhí)行時(shí)間大于其最壞執(zhí)行時(shí)間tj,則進(jìn)一步判斷該任務(wù)是否為可延遲任務(wù);若該任務(wù)實(shí)例不可延遲,則必須在CIj中執(zhí)行;若任務(wù)為可延遲任務(wù),則將該實(shí)例延遲到下個(gè)垛區(qū)間CIj+1中執(zhí)行;
獲取所有可選任務(wù)開始執(zhí)行的時(shí)刻點(diǎn)δ=tj-SumOptional;其中,SumOptional是指在對(duì)區(qū)間CIj屮需要執(zhí)行的所有可選任務(wù)的工作量的總和。
實(shí)施例中,采用形如(Ci,Di,Ti)的三元組來量化描述任務(wù);其中,Ci是指任務(wù)τi在最大的處理器頻率下的最壞執(zhí)行時(shí)間,Di和Ti分別是指任務(wù)的相對(duì)截止期和周期長(zhǎng)度;采用τi,j表示任務(wù)集τi的第j個(gè)任務(wù)實(shí)例。
對(duì)于任務(wù)集中的可選任務(wù)實(shí)例如果滿足則將調(diào)度在當(dāng)前的垛區(qū)間Cj中執(zhí)行,并且使得該可選任務(wù)實(shí)例在時(shí)間點(diǎn)tj之前完成;否則,則將可選任務(wù)實(shí)例調(diào)度到下一個(gè)垛區(qū)間Cj+1的起始處執(zhí)行;實(shí)施例中,每個(gè)垛區(qū)間的周期長(zhǎng)度為20ms。
對(duì)于實(shí)施例中的如下周期任務(wù)的任務(wù)集:τ1=(1,10,10),τ2=(6,16,16)(單位為ms);為每個(gè)任務(wù)集τi設(shè)置一個(gè)執(zhí)行閩值U*Ti;U為任務(wù)集的利用率;根據(jù)執(zhí)行閾值判斷可選任務(wù)實(shí)例是否延遲執(zhí)行;
具體地,首先計(jì)算獲取整個(gè)任務(wù)集的利用率U=1/10+6/16=0.47;
然后判斷任務(wù)實(shí)例是否被推遲,由于任務(wù)實(shí)例τ2,2在時(shí)刻點(diǎn)16釋放,并且其截止期在t1時(shí)刻點(diǎn)之后,因此,判定任務(wù)實(shí)例τ2,2在CI1中為可選實(shí)例;由于其預(yù)估的執(zhí)行時(shí)間L1(τ2,2)=4<0.475*16=7.52,將任務(wù)實(shí)例τ2,2推遲到下一個(gè)垛區(qū)間CI2中執(zhí)行;
其中,強(qiáng)制任務(wù)實(shí)例是指必須在指定CI內(nèi)執(zhí)行的任務(wù),可選任務(wù)實(shí)例是指可被延遲到下一個(gè)CI內(nèi)執(zhí)行的任務(wù)。
在垛區(qū)間CI2中,任務(wù)實(shí)例τ2,2為強(qiáng)制實(shí)例,必須在該垛區(qū)間內(nèi)完成;對(duì)于垛區(qū)間CI2而言,任務(wù)實(shí)例τ2,3為可選任務(wù)實(shí)例,該任務(wù)的預(yù)估的執(zhí)行時(shí)間L2(τ2,3)=8>0.47*16=7.52,任務(wù)τ2,3必須在垛區(qū)間CI2中完成。
本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。