本發(fā)明涉及嵌入式實(shí)時(shí)系統(tǒng)中任務(wù)調(diào)度
技術(shù)領(lǐng)域:
,尤其涉及一種在滿足系統(tǒng)峰值溫度保證的前提下,通過(guò)為任務(wù)選擇最優(yōu)的處理器、操作頻率、執(zhí)行順序,減少系統(tǒng)調(diào)度長(zhǎng)度的方法。
背景技術(shù):
:隨著對(duì)計(jì)算機(jī)性能要求的日益提高,多核處理器已經(jīng)逐步取代了傳統(tǒng)的單核處理器,成為當(dāng)代和下一代處理器的設(shè)計(jì)規(guī)范。多核處理器最大的優(yōu)點(diǎn)在于能夠?qū)θ蝿?wù)進(jìn)行并行處理,因而縮短了多個(gè)任務(wù)總的執(zhí)行時(shí)間,使得系統(tǒng)的效率顯著提高。與此同時(shí),隨著處理器芯片體積的不斷縮小,處理器的能耗密度也在以指數(shù)的形式增長(zhǎng)。如此快速增長(zhǎng)的處理器功耗密度必然會(huì)導(dǎo)致芯片溫度的升高。當(dāng)芯片的溫度超過(guò)某個(gè)閾值時(shí),系統(tǒng)可能會(huì)產(chǎn)生一些無(wú)法預(yù)估的功能錯(cuò)誤和硬件錯(cuò)誤,這樣會(huì)使系統(tǒng)的可靠性大大降低。因此,在系統(tǒng)峰值溫度限制條件下,最大程度地提高系統(tǒng)的效率,即最小化任務(wù)總的完成時(shí)間(調(diào)度長(zhǎng)度),已經(jīng)成為一個(gè)非常重要的研究課題。動(dòng)態(tài)熱量管理技術(shù)(DTM)已經(jīng)被廣泛地用于對(duì)處理器進(jìn)行溫度管理。它主要包括動(dòng)態(tài)電壓和頻率調(diào)節(jié)(DVFS)、調(diào)度優(yōu)先級(jí)自適應(yīng)、任務(wù)遷移等溫度控制方法。很多學(xué)者在DTM技術(shù)的基礎(chǔ)上,設(shè)計(jì)了一些溫度感知的策略來(lái)對(duì)處理器的溫度進(jìn)行管理。這些研究的關(guān)注點(diǎn)大都是集中在對(duì)同構(gòu)多核處理器的溫度控制。但是,Hyari在他的研究中發(fā)現(xiàn),異構(gòu)多核處理器的計(jì)算性能明顯優(yōu)于同構(gòu)多核處理器。目前,幾乎沒(méi)有對(duì)異構(gòu)多核處理器的研究同時(shí)考慮到溫度控制和最小化調(diào)度長(zhǎng)度。因此,迫切需要對(duì)異構(gòu)多核處理器進(jìn)行溫度控制研究,充分發(fā)揮異構(gòu)多核處理器的優(yōu)越性,最大限度地提高系統(tǒng)的性能,即在溫度約束條件下,最小化系統(tǒng)調(diào)度長(zhǎng)度。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的是提供一種對(duì)異構(gòu)多核處理器溫度-調(diào)度長(zhǎng)度感知的實(shí)時(shí)任務(wù)調(diào)度方法,該方法在滿足系統(tǒng)峰值溫度和時(shí)間約束的條件下,通過(guò)為每個(gè)任務(wù)選擇最優(yōu)的處理器、工作頻率、執(zhí)行順序,來(lái)最小化調(diào)度長(zhǎng)度。實(shí)現(xiàn)本發(fā)明目的的具體技術(shù)方案是:一種對(duì)異構(gòu)多核處理器溫度-調(diào)度長(zhǎng)度感知的實(shí)時(shí)任務(wù)調(diào)度方法,包括以下步驟:步驟1:讀取系統(tǒng)默認(rèn)的權(quán)重因子α;步驟2:將任務(wù)隊(duì)列里存儲(chǔ)的任務(wù)分配到最優(yōu)的處理器;步驟3:對(duì)每個(gè)處理器任務(wù)隊(duì)列里的任務(wù)選取最優(yōu)頻率;步驟4:確定每個(gè)處理器任務(wù)隊(duì)列里的任務(wù)的執(zhí)行順序;步驟5:對(duì)超過(guò)溫度約束的任務(wù)進(jìn)行切分;步驟6:判斷系統(tǒng)當(dāng)前調(diào)度長(zhǎng)度是否小于或等于給定的所有任務(wù)共享的截止時(shí)間D,如果滿足,任務(wù)執(zhí)行,調(diào)度結(jié)束;如果不滿足,返回調(diào)度失敗,任務(wù)不能執(zhí)行,調(diào)度結(jié)束。所述步驟2中的將任務(wù)隊(duì)列里存儲(chǔ)的任務(wù)分配到最優(yōu)的處理器,具體包括:步驟A1:初始化L1=L2=…=Lk=…=LN;其中,Lk為處理器PEk上任務(wù)指令的條數(shù),N為處理器的個(gè)數(shù)。步驟A2:從任務(wù)隊(duì)列Qglobal取出隊(duì)頭任務(wù)τhead;步驟A3:將標(biāo)志位k賦值為1,即:k←1;步驟A4:假設(shè)τhead分配到PEk,計(jì)算出處理器PEk以最大頻率執(zhí)行τhead后的調(diào)度長(zhǎng)度其中,WChead為任務(wù)τhead最壞情況下執(zhí)行周期,為處理器PEk的處于最大活性模式下的頻率。步驟A5:計(jì)算分配到除PEk外,τhead在其他處理器的時(shí)間;步驟A6:計(jì)算出N個(gè)處理器調(diào)度長(zhǎng)度的和tsum=(t1+t2+…+tN);步驟A7:計(jì)算出在只考慮調(diào)度長(zhǎng)度下,τhead分配到處理器PEk的概率λk,w=1-tk/tsum;步驟A8:計(jì)算τhead以最大頻率在處理器PEk上執(zhí)行后,結(jié)束時(shí)的溫度Tend,k;步驟A9:判斷Tend,k<Tpeak是否成立。若成立,轉(zhuǎn)步驟A10;否則,轉(zhuǎn)步驟A11。步驟A10:利用公式λk,t=1-Tend,k/Tpeak計(jì)算出只考慮溫度條件下分配τhead到PEk的概率λk,t;步驟A11:將0賦值給λk,t,即λk,t=0;步驟A12:計(jì)算在考慮溫度和調(diào)度長(zhǎng)度下,τhead分配到PEk的概率,計(jì)算公式為:λk=α*λk,t+(1-α)*λk,w;步驟A13:更新k,公式為:k←k+1;步驟A14:判斷k≤N是否成立,若成立,轉(zhuǎn)步驟A4;否則,轉(zhuǎn)步驟A15;步驟A15:從λ1至λN中選取最大值,并將其對(duì)應(yīng)的處理器編號(hào)賦值給flag;步驟A16:將τhead分配給處理器PEflag,將其插入到PEflag任務(wù)存儲(chǔ)隊(duì)列Qflag;步驟A17:將τhead從Qgtobal中刪除,更新隊(duì)頭任務(wù);步驟A18:更新Lflag=Lflag+WChead;步驟A19:判斷Qglobal是否為空,不為空,轉(zhuǎn)步驟A2;否則,轉(zhuǎn)步驟A20;步驟A20:所有任務(wù)分配完成,退出。所述步驟3確定任務(wù)的最優(yōu)頻率,具體包括:步驟B1:將k賦值為1,即:k←1;步驟B2:計(jì)算出PEk的調(diào)度長(zhǎng)度tf(PEk);步驟B3:k←k+1;步驟B4:判斷k≤N是否成立,若成立,轉(zhuǎn)步驟B2;否則,轉(zhuǎn)步驟B5;步驟B5:計(jì)算N個(gè)調(diào)度長(zhǎng)度的最大值,將其賦值給tf,即:tf=max(tf(PE1),tf(PE2),...,tf(PEN));步驟B6:將k重新賦值為1,即:k←1;步驟B7:計(jì)算出處理器PEk可用的松弛時(shí)間slk,公式為:slk=tf-tf(PEk);步驟B8:從Qk中取出隊(duì)頭任務(wù)τhead;步驟B9:計(jì)算τhead穩(wěn)定狀態(tài)下溫度Tstd;步驟B10:根據(jù)Tstd對(duì)τhead進(jìn)行冷熱劃分;如果該任務(wù)為熱任務(wù),將該任務(wù)插入隊(duì)列Qk,h;如果為冷任務(wù),則插入隊(duì)列Qk,c;步驟B11:將τhead從Qk中刪除,更新隊(duì)頭任務(wù)τhead;步驟B12:判斷Qk是否為空,若不為空,轉(zhuǎn)步驟B9;否則,轉(zhuǎn)步驟B13;步驟B13:將所有在Qk,c中的冷任務(wù)頻率設(shè)為PEk的最大頻率步驟B14:對(duì)Qk,h中的熱任務(wù)按照穩(wěn)定狀態(tài)下溫度降序排序;步驟B15:將l賦值為處理器PEk的最大活性模式即:步驟B16:將i賦值為1,即:i←1;步驟B17:判斷slk>0是否成立,若成立,轉(zhuǎn)步驟B18,否則,轉(zhuǎn)步驟B27;步驟B18:對(duì)在Qk,h中的任務(wù)τi,判斷是否成立,若成立,轉(zhuǎn)步驟B19;否則,轉(zhuǎn)步驟B25;步驟B19:將τi的頻率設(shè)置為Fk,l-1;步驟B20:更新slk,公式為:步驟B21:更新l,公式為:l=l-1;步驟B22:判斷l(xiāng)==1是否成立,如果成立,轉(zhuǎn)步驟B23;否則,轉(zhuǎn)步驟17;步驟B23:更新i,公式為:i←i+1;步驟B24:判斷i≤sizeof(Qk,h)是否成立,若成立,轉(zhuǎn)步驟B17;否則,轉(zhuǎn)步驟B25;其中,sizeof(Qk,h)為Qk,h中的任務(wù)個(gè)數(shù)。步驟B25:將slk作為空任務(wù)插入到Qk,c;步驟B26:更新Qk,h與Qk,c;步驟B27:更新k,公式為:k←k+1;步驟B28:判斷k≤N,若成立,轉(zhuǎn)步驟B7;否則,轉(zhuǎn)步驟B29;步驟B29:確定任務(wù)的最優(yōu)頻率結(jié)束,退出。所述步驟4確定每個(gè)處理器任務(wù)隊(duì)列里的任務(wù)的執(zhí)行順序,具體包括:步驟C1:將k賦值為1,即:k←1;步驟C2:對(duì)Qk,h中的熱任務(wù)按照穩(wěn)定狀態(tài)下溫度降序排序;步驟C3:對(duì)Qk,c中的冷任務(wù)按照穩(wěn)定狀態(tài)下溫度升序排序;步驟C4:將Qk,h和Qk,c中任務(wù)個(gè)數(shù)最小值賦值給sizemin,公式為:sizemin=min(sizeof(Qk,h),sizeof(Qk,c));步驟C5:將i賦值為1,即:i←1;步驟C6:將Qk,h[i]插入到目標(biāo)隊(duì)列Qk(2*i-1);步驟C7:從Qk,h中刪除Qk,h[i];步驟C8:將Qk,c[i]插入到目標(biāo)隊(duì)列Qk(2*i);步驟C9:從Qk,c中刪除Qk,c[i];步驟C10:更新i,公式為:i←i+1;步驟C11:判斷i≤sizemin是否成立,若成立,轉(zhuǎn)步驟C6;否則,轉(zhuǎn)步驟C12;步驟C12:將剩余的Qk,h或Qk,c中的任務(wù)插入到Qk中;步驟C13:更新k,公式為:k←k+1;步驟C14:判斷k≤N,若成立,轉(zhuǎn)步驟C2;否則,轉(zhuǎn)步驟C15;步驟C15:確定每個(gè)處理器任務(wù)隊(duì)列里的任務(wù)的執(zhí)行順序結(jié)束,退出。所述步驟5為對(duì)超過(guò)溫度約束的任務(wù)進(jìn)行切分,具體包括:步驟D1:將k賦值為1,即:k←1;步驟D2:將i賦值為1,即:i←1;步驟D3:計(jì)算任務(wù)QK(i)的結(jié)束溫度Tend,i;步驟D4:判斷Tend,i>Tmax是否成立,若成立,轉(zhuǎn)步驟D5;否則,轉(zhuǎn)步驟D10;步驟D5:用上下文轉(zhuǎn)換開(kāi)銷tsw,i初始化最優(yōu)空閑時(shí)間即:步驟D6:計(jì)算插入的最優(yōu)空閑時(shí)間的結(jié)束溫度步驟D7:計(jì)算在活性模式下,子任務(wù)的執(zhí)行時(shí)間tactive,i;步驟D8:計(jì)算最優(yōu)的子任務(wù)個(gè)數(shù)公式為:其中,fi為任務(wù)QK,h(i)的頻率。步驟D9:計(jì)算出最優(yōu)空閑時(shí)間公式為:其中,Tinit,i為任務(wù)QK(i)執(zhí)行時(shí)的初始溫度,Rk和Ck分別為處理器PEk熱阻和熱容。步驟D10:更新i,公式為:i←i+1;步驟D11:判斷i≤sizeof(QK,h)是否成立,若成立,轉(zhuǎn)步驟D3;否則,轉(zhuǎn)步驟D12;步驟D12:更新k,公式為:k←k+1;步驟D13:判斷k≤N,若成立,轉(zhuǎn)步驟D2;否則,轉(zhuǎn)步驟D14:步驟D14:對(duì)超過(guò)溫度約束的任務(wù)進(jìn)行切分結(jié)束,退出。本發(fā)明通過(guò)為任務(wù)集中的每個(gè)任務(wù)選擇合適的處理器、工作頻率,以及確定任務(wù)的調(diào)度順序,對(duì)超過(guò)溫度限制的任務(wù)進(jìn)行切分的方式來(lái)實(shí)現(xiàn)在溫度約束條件下最小化系統(tǒng)的調(diào)度長(zhǎng)度。本發(fā)明對(duì)于嵌入式實(shí)時(shí)系統(tǒng)具有很高的應(yīng)用價(jià)值。附圖說(shuō)明圖1為本發(fā)明流程圖;圖2為在α=0.3條件下,本發(fā)明所提出的算法與基準(zhǔn)算法在降低調(diào)度長(zhǎng)度方面的比較圖;圖3為在α=0.8條件下,本發(fā)明所提出的算法與基準(zhǔn)算法在降低調(diào)度長(zhǎng)度方面的比較圖;圖4為在α=0.3條件下,本發(fā)明所提出的算法與基準(zhǔn)算法在降低峰值溫度方面的比較圖;圖5為在α=0.8條件下,本發(fā)明所提出的算法與基準(zhǔn)算法在降低峰值溫度方面的比較圖。具體實(shí)施方式結(jié)合以下具體實(shí)施例和附圖,對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。實(shí)施本發(fā)明的過(guò)程、條件以及實(shí)驗(yàn)方法等,除以下專門提及的內(nèi)容以外,均為本領(lǐng)域的普遍知識(shí)和公知常識(shí),本發(fā)明并沒(méi)有特別限制的內(nèi)容。本發(fā)明中所使用的處理器支持DVFS技術(shù)。每個(gè)處理器具有L種離散的操作頻率{f1,f2,…,fL},且滿足fmin=f1<f2<…<fL=fmax。其中,fmin表示處理器的最低操作頻率,fmax表示處理器的最高操作頻率。處理器頻率的切換只能發(fā)生在任務(wù)開(kāi)始執(zhí)行之前,或者任務(wù)執(zhí)行完成之后。因此,每個(gè)任務(wù)在其執(zhí)行過(guò)程中,只能出現(xiàn)一種頻率。在本發(fā)明中所使用的任務(wù)模型中,任務(wù)集Γ由γ個(gè)實(shí)時(shí)任務(wù)組成,即Γ={τ1,τ2,…,τγ}。所有的任務(wù)共享一個(gè)截止時(shí)間D。同時(shí),本發(fā)明中的任務(wù)之間是相互獨(dú)立的,沒(méi)有依賴關(guān)系。本發(fā)明所用的溫度模型中,處理器在t時(shí)刻的溫度為:其中Tstd為任務(wù)穩(wěn)定狀態(tài)下的溫度,且Tstd=PR+Tamb,Tint為初始溫度,Tamb為環(huán)境溫度,R和C分別為處理器的熱阻和熱容。本發(fā)明的目的是通過(guò)為任務(wù)選擇合適的處理器和操作頻率,并確定任務(wù)的執(zhí)行順序的方式,以及對(duì)超過(guò)溫度約束的任務(wù)進(jìn)行切分,在峰值溫度和時(shí)間約束的條件下最小化系統(tǒng)的調(diào)度長(zhǎng)度。本發(fā)明的目標(biāo)函數(shù)可以表示為:最小化:約束條件:Tpeak≤Tmaxtf≤D其中,tf(PEk)為處理器PEk的調(diào)度長(zhǎng)度,Tmax是最高溫度限制,Tpeak是處理器的峰值溫度,D為所有任務(wù)共享的截止時(shí)間。實(shí)施例:任務(wù)集定為Γ={τ1,τ2,τ3,τ4}。假設(shè)四個(gè)任務(wù)最壞情況下的執(zhí)行周期分別為3×109,4×109,5×109,6×109;活性因子分別為0.8,0.4,0.6,0.5。系統(tǒng)包含兩個(gè)異構(gòu)處理器PE1和PE2。PE1支持的頻率為{1.9GHz,2.3GHz},對(duì)應(yīng)的功率為{16.8W,21W};PE2支持的頻率為{2GHz,2.15GHz},對(duì)應(yīng)的功率為{18W,19.5W}。由此計(jì)算出兩個(gè)處理器的平均處理能力為2.0875GHz。任務(wù)共享截至?xí)r間其中,sizeof(Γ)為集合Γ中任務(wù)的個(gè)數(shù),favg為異構(gòu)多核處理器的平均頻率,N為處理器的個(gè)數(shù)。據(jù)此計(jì)算,任務(wù)共享的截止時(shí)間D為5.1737。這些參數(shù)作為算法(調(diào)度方法)的輸入。步驟1:讀取權(quán)重因子α值,假設(shè)系統(tǒng)默認(rèn)值為α=0.8;步驟2:將任務(wù)隊(duì)列里存儲(chǔ)的任務(wù)分配到最優(yōu)的處理器;初始化時(shí),任務(wù)隊(duì)列Qglobal存放的任務(wù)為{τ1,τ2,τ3,τ4},其中,τ1是隊(duì)頭任務(wù)。首先計(jì)算只考慮調(diào)度長(zhǎng)度下任務(wù)分配到PE1和PE2的概率。假設(shè)τ1分配到PE1,τ1在PE1上以最大頻率執(zhí)行,所需要的時(shí)間t1=1.3043;假設(shè)τ1分配到PE2,τ1在PE2上以最大頻率執(zhí)行,所需要的時(shí)間t2=1.3953。由此計(jì)算出只考慮調(diào)度長(zhǎng)度下下面計(jì)算只考慮峰值溫度下,τ1分配到PE1和PE2的概率。假設(shè)τ1分配到PE1,則Tend,1=27.4505℃;假如τ1分配到PE2,則Tend,2=27.6135℃。由此計(jì)算出只考慮峰值溫度下最后計(jì)算綜合考慮調(diào)度長(zhǎng)度和峰值溫度下,τ1分配到PE1和PE2的概率。τ1分配到PE1的概率λ1,t=0.8*0.0850+(1-0.8)*0.5169=0.1714;τ1分配到PE2的概率λ2,t=0.8*0.0796+(1-0.8)*0.4831=0.1603。由于0.1714>0.1603,所以τ1應(yīng)分配到處理器PE1。同理,完成τ2,τ3,τ4的分配。最終確定任務(wù)τ1,τ2,τ3,τ4分配的處理器為PE1,PE2,PE1,PE2。步驟3:對(duì)每個(gè)處理器的任務(wù)隊(duì)列里的任務(wù)選取最優(yōu)頻率:完成步驟2后,計(jì)算出PE1的調(diào)度長(zhǎng)度tf(PE1)=3.4783,PE2的調(diào)度長(zhǎng)度tf(PE2)=4.6512。因?yàn)橄到y(tǒng)的調(diào)度長(zhǎng)度取值為兩個(gè)處理器調(diào)度長(zhǎng)度的最大值,所以系統(tǒng)的調(diào)度長(zhǎng)度tf=tf(PE2)=4.6512。由于3.4783<4.6512,所以PE1存在松弛時(shí)間sl1=tf-tf(PE1)=1.1729,可以利用這個(gè)松弛時(shí)間,在不增加系統(tǒng)調(diào)度長(zhǎng)度的條件下,對(duì)PE1上的任務(wù)進(jìn)行降頻操作。根據(jù)任務(wù)穩(wěn)定狀態(tài)下的溫度Tstd和最高溫度限制Tmax對(duì)任務(wù)進(jìn)行冷熱劃分。若Tstd>Tmax,則任務(wù)為熱任務(wù);否則,為冷任務(wù)。因此處理器PE1熱任務(wù)隊(duì)列Q1,h={τ1,τ3},處理器PE2熱任務(wù)隊(duì)列Q2,h={τ2,τ4},處理器PE1和PE2的冷任務(wù)隊(duì)列Q1,c和Q2,c為空。對(duì)Q1,h根據(jù)任務(wù)的穩(wěn)定狀態(tài)下溫度Tstd進(jìn)行降序排序,得到排序后的Q1,h={τ1,τ3}。首先,嘗試對(duì)τ1進(jìn)行降頻操作。當(dāng)τ1的頻率有原來(lái)的2.3GHz降至1.9GHz時(shí),需要額外的執(zhí)行時(shí)間為1.5789-1.3043=0.2746。由于0.2746<1.1729,所以,τ1可以進(jìn)行降頻操作,由原來(lái)的2.3GHz降至1.9GHz。松弛時(shí)間更新為sl1=1.1729-0.2746=0.8983。其次,嘗試對(duì)τ3進(jìn)行降頻操作。當(dāng)τ3的頻率有原來(lái)的2.3GHz降至1.9GHz時(shí),需要額外的執(zhí)行時(shí)間為2.6316-2.1739=0.4577。由于0.4577<0.8983,所以,τ3可以進(jìn)行降頻操作,由原來(lái)的2.3GHz降至1.9GHz。松弛時(shí)間更新為sl1=0.8983-0.4577=0.4406。剩余的松弛時(shí)間sl1可作為執(zhí)行時(shí)間為0.4406的冷任務(wù)τ5,插入到Q1,c。最終確定任務(wù)τ1,τ2,τ3,τ4的操作頻率分別為1.9GHz,2.15GHz,1.9GHz,2.15GHz。步驟4:確定每個(gè)處理器任務(wù)隊(duì)列里的任務(wù)的執(zhí)行順序;由于任務(wù)τ1和τ3的操作頻率改變,所以任務(wù)的穩(wěn)定狀態(tài)下的溫度也隨著改變。首先,根據(jù)公式Tstd=PR+Tamb,重新計(jì)算任務(wù)τ1和τ3穩(wěn)定狀態(tài)下溫度;其次,將τ1和τ3按照穩(wěn)定狀態(tài)下溫度降序排序;最后,按照“熱-冷”任務(wù)的順序確定處理器PE1任務(wù)執(zhí)行隊(duì)列Q1={τ1,τ5,τ3}。同理,處理器PE1任務(wù)執(zhí)行隊(duì)列Q2={τ4,τ2}。步驟5:對(duì)超過(guò)溫度約束的任務(wù)進(jìn)行切分;首先,對(duì)處理器PE1的任務(wù)隊(duì)列Q1進(jìn)行結(jié)束溫度計(jì)算。τ1在執(zhí)行后,它的結(jié)束溫度Tend=27.3538。由于Tend<Tmax,所以不需要對(duì)任務(wù)τ1進(jìn)行切分??杖蝿?wù)τ5在執(zhí)行后,它的結(jié)束溫度Tend=27.2922。τ3在執(zhí)行后,它的結(jié)束溫度Tend=29.8085。由于Tend<Tmax,所以不需要對(duì)任務(wù)τ3進(jìn)行切分。其次,對(duì)處理器PE1的任務(wù)隊(duì)列Q2進(jìn)行結(jié)束溫度計(jì)算。τ4在執(zhí)行后,它的結(jié)束溫度Tend=27.6135。由于Tend<Tmax,所以不需要對(duì)任務(wù)τ4進(jìn)行切分。τ2在執(zhí)行后,它的結(jié)束溫度Tend=29.0648。由于Tend<Tmax,所以不需要對(duì)任務(wù)τ2進(jìn)行切分。步驟6:判斷系統(tǒng)當(dāng)前調(diào)度長(zhǎng)度是否小于或等于給定的所有任務(wù)共享的截止時(shí)間D,如果滿足,則調(diào)度結(jié)束;如果不滿足,返回調(diào)度失敗,調(diào)度結(jié)束。通過(guò)步驟5,計(jì)算得到系統(tǒng)實(shí)際的調(diào)度長(zhǎng)度tf=4.6512。任務(wù)共享的截止時(shí)間D作為算法的輸入已經(jīng)給出,為5.1737。由于tf<D,所以此次調(diào)度滿足系統(tǒng)要求,任務(wù)可以按照以上計(jì)算出的執(zhí)行順序進(jìn)行執(zhí)行,任務(wù)調(diào)度結(jié)束。下面通過(guò)實(shí)驗(yàn)來(lái)驗(yàn)證本發(fā)明在減少系統(tǒng)能耗和降低峰值溫度方面的效果。為了使實(shí)驗(yàn)數(shù)據(jù)更加充分,任務(wù)取現(xiàn)實(shí)生活中任務(wù)。實(shí)施過(guò)程中,異構(gòu)多核處理器有四個(gè),頻率設(shè)置參照ARMCortexA7處理器,最大工作頻率為2.5GHz。四個(gè)處理器的參數(shù)設(shè)置如表一所示。表1處理器頻率(GHZ)功率(W)熱阻R(℃/W)熱容C(J/℃)PE1{1.9,2.3,2.4}{16.8,21,22}1.930.0086PE2{2,2.15,2.5}{18,19.5,23}2.150.0080PE3{2.15,2.3,2.5}{19.5,21,23}2.050.0084PE4{2,2.15,2.3}{14.4,16.8,21}2.130.0082任務(wù)的截止時(shí)間設(shè)置為其中,sizeof(Γ)為集合Γ中任務(wù)的個(gè)數(shù),favg為異構(gòu)多核處理器的平均頻率,N為處理器的個(gè)數(shù)。任務(wù)的異構(gòu)性用活性因子來(lái)表現(xiàn),取值范圍[0,4,1]。本組實(shí)驗(yàn)中有六個(gè)任務(wù)集,六個(gè)任務(wù)集包含的真實(shí)的任務(wù)類型和任務(wù)總數(shù),如表2所示。這些任務(wù)的時(shí)鐘周期所處的范圍為[4×107,6×108]。表2首先比較本發(fā)明與RATM、α-VSTM算法在減少調(diào)度長(zhǎng)度方面的提升。RATM算法將任務(wù)集合中的任務(wù)隨機(jī)分配到處理器。在完成“任務(wù)-處理器”的分配后,RATM在溫度控制方案和本發(fā)明相同,即采用任務(wù)降頻、任務(wù)“熱-冷”排序和任務(wù)切分。α-VSTM算法采用本發(fā)明提出的“任務(wù)-處理器”分配方案,但溫度控制采用DVFS技術(shù)。圖2給出了在α=0.3的條件下,六組組任務(wù)集分別使用本發(fā)明與RATM、α-VSTM在降低調(diào)度長(zhǎng)度(單位:秒)方面的實(shí)驗(yàn)結(jié)果。系統(tǒng)能夠容忍的最大的峰值溫度Tmax設(shè)置為50℃。環(huán)境溫度Tamb設(shè)置為25℃。由圖2所示,使用本發(fā)明得到的調(diào)度長(zhǎng)度要比使用RATM、α-VSTM取得的調(diào)度長(zhǎng)度低很多。例如,對(duì)于任務(wù)集Γ6,本發(fā)明與RATM相比,能夠使調(diào)度長(zhǎng)度降低21.62%;與α-VSTM相比,降低了19.63%。圖3給出了在α=0.8的條件下,六組組任務(wù)集分別使用本發(fā)明與RATM、α-VSTM在降低調(diào)度長(zhǎng)度(單位:秒)方面的實(shí)驗(yàn)結(jié)果。系統(tǒng)能夠容忍的最大的峰值溫度Tmax設(shè)置為50℃。環(huán)境溫度Tamb設(shè)置為25℃。由圖3所示,使用本發(fā)明得到的調(diào)度長(zhǎng)度要比使用RATM、α-VSTM取得的調(diào)度長(zhǎng)度低很多。例如,對(duì)于任務(wù)集Γ6,本發(fā)明與RATM相比,能夠使調(diào)度長(zhǎng)度降低15.31%;與α-VSTM相比,降低了19.56%。圖4給出了在α=0.3的條件下,六組組任務(wù)集分別使用本發(fā)明與RATM、α-VSTM在降低峰值溫度(單位:℃)方面的實(shí)驗(yàn)結(jié)果。系統(tǒng)能夠容忍的最大的峰值溫度Tmax設(shè)置為50℃。環(huán)境溫度Tamb設(shè)置為25℃。由圖4所示,使用本發(fā)明得到的峰值溫度明顯低于使用RATM、α-VSTM取得的峰值溫度。例如,對(duì)于任務(wù)集Γ6,本發(fā)明與RATM相比,能夠使峰值溫度降低1.89%;與α-VSTM相比,降低了2.19%。圖5給出了在α=0.8的條件下,六組組任務(wù)集分別使用本發(fā)明與RATM、α-VSTM在降低峰值溫度(單位:℃)方面的實(shí)驗(yàn)結(jié)果。系統(tǒng)能夠容忍的最大的峰值溫度Tmax設(shè)置為50℃。環(huán)境溫度Tamb設(shè)置為25℃。由圖5所示,使用本發(fā)明得到的峰值溫度明顯低于使用RATM、α-VSTM取得的峰值溫度。例如,對(duì)于任務(wù)集Γ6,本發(fā)明與RATM相比,能夠使峰值溫度降低4.38%;與α-VSTM相比,降低了4.49%。通過(guò)上述的實(shí)驗(yàn)數(shù)據(jù),能夠很清楚的看出本發(fā)明無(wú)論是在減少調(diào)度長(zhǎng)度方面,還是在降低系統(tǒng)峰值溫度方面,都具有很好的性能。當(dāng)前第1頁(yè)1 2 3