本發(fā)明屬于實(shí)時(shí)節(jié)能調(diào)度技術(shù)領(lǐng)域,更具體地,涉及一種支持非搶占實(shí)時(shí)任務(wù)集的節(jié)能調(diào)度方法。
背景技術(shù):
動(dòng)態(tài)電壓調(diào)節(jié)(Dynamic Voltage Scaling,DVS)是一種有效的低功耗技術(shù),是基于可搶占調(diào)度來(lái)進(jìn)行的;但由于硬件設(shè)備或軟件配置的原因,在某些情況下額可搶占調(diào)度代價(jià)太大,比如用于搶占操作的負(fù)載對(duì)系統(tǒng)來(lái)說(shuō)過(guò)大(如在商用嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)eXtremeDB中,事務(wù)調(diào)度是非搶占的),或者系統(tǒng)本身需要支持不可搶占的關(guān)鍵段任務(wù),則需要考慮非搶占情況下的節(jié)能調(diào)度;非搶占調(diào)度具有易于實(shí)施、無(wú)同歩開(kāi)銷(xiāo)以及便于精確分析任務(wù)響應(yīng)時(shí)間的優(yōu)點(diǎn),在輕量級(jí)多任務(wù)內(nèi)核及多媒體領(lǐng)域有廣泛應(yīng)用;另一方面,相比于動(dòng)態(tài)優(yōu)先級(jí),靜態(tài)優(yōu)先級(jí)調(diào)度具有更高的可預(yù)測(cè)性,更低的調(diào)度開(kāi)銷(xiāo),且易于實(shí)現(xiàn),在實(shí)時(shí)系統(tǒng)中的應(yīng)用也更為廣泛;因此,在可動(dòng)態(tài)電壓調(diào)節(jié)的單處理器上對(duì)非搶占任務(wù)集進(jìn)行靜態(tài)優(yōu)先級(jí)節(jié)能調(diào)度,在保證非搶占任務(wù)集可靜態(tài)調(diào)度性和低調(diào)度開(kāi)銷(xiāo)的同時(shí),能夠有效降低非搶占任務(wù)集的運(yùn)行時(shí)能耗,具有重要的實(shí)用價(jià)值。
現(xiàn)有技術(shù)中還沒(méi)有針對(duì)靜態(tài)優(yōu)先級(jí)完全非搶占任務(wù)集的節(jié)能調(diào)度算法,最為相關(guān)的兩個(gè)工作分別是DS算法與基于靜態(tài)優(yōu)先級(jí)的同步任務(wù)動(dòng)態(tài)電壓調(diào)節(jié)算法USFI(Uniform Slowdown algorithm with Frequency Inheritance),DS和USFI算法均適用于非搶占調(diào)度,但這兩類(lèi)方法是基于考慮任務(wù)阻塞下可搶占任務(wù)集的充分可調(diào)度性分析來(lái)計(jì)算任務(wù)的減速因子(標(biāo)準(zhǔn)化的執(zhí)行速度),并沒(méi)有考慮非搶占調(diào)度的特性,在計(jì)算減速因子時(shí)過(guò)于保守,無(wú)法達(dá)到充分節(jié)省系統(tǒng)能耗的目的。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種支持非搶占實(shí)時(shí)任務(wù)集的節(jié)能調(diào)度方法,其目的在于通過(guò)精確分析高優(yōu)先級(jí)任務(wù)的計(jì)算負(fù)荷,為每個(gè)任務(wù)分配更低的減速因子,在任務(wù)集下使用低減速因子顯著降低系統(tǒng)能耗。
為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,提供了一種支持非搶占實(shí)時(shí)任務(wù)集的節(jié)能調(diào)度方法,具體包括如下步驟:
(1)初始任務(wù)集合處理:將任務(wù)集合按照截止期遞增排序,按照排序計(jì)算獲取每個(gè)任務(wù)的靜態(tài)調(diào)度點(diǎn);
(2)獲取初始減速因子:對(duì)于任務(wù)集合中的某一個(gè)任務(wù),計(jì)算其各個(gè)靜態(tài)調(diào)度點(diǎn)的減速因子,由該任務(wù)的各靜態(tài)調(diào)度點(diǎn)的減速因子構(gòu)成該任務(wù)的減速因子集合;
將減速因子集合中最小的減速因子作為該任務(wù)的執(zhí)行速度,并將該最小的減速因子作為該任務(wù)的初始減速因子;
(3)獲取候選減速因子:對(duì)于任務(wù)的每個(gè)靜態(tài)調(diào)度點(diǎn),根據(jù)初始減速因子計(jì)算非搶占任務(wù)的實(shí)際計(jì)算負(fù)荷;并根據(jù)該實(shí)際計(jì)算負(fù)荷,迭代計(jì)算獲取任務(wù)各靜態(tài)調(diào)度點(diǎn)的候選減速因子;
根據(jù)所有靜態(tài)調(diào)度點(diǎn)的候選減速因子構(gòu)成新的減速因子集合;將所述新的減速因子集合中的最小值作為任務(wù)的候選減速因子;
(4)分配減速因子:將初始減速因子的最小值與候選減速因子的最小值進(jìn)行比較,取這兩個(gè)最小值中較小者作為該任務(wù)的減速因子;
(5)重復(fù)步驟(2)、(3)和(4),直到任務(wù)集合中的所有任務(wù)均分配到減速因子。
優(yōu)選地,上述支持非搶占實(shí)時(shí)任務(wù)集的節(jié)能調(diào)度方法,其步驟(1)包括如下子步驟:
(1.1)收集所有非搶占任務(wù)集的最壞執(zhí)行時(shí)間Ci、周期Ti、截止期Di,將所有任務(wù)集按照截止期Di遞增排序;
(1.2)根據(jù)上述排序獲取各任務(wù)的靜態(tài)調(diào)度點(diǎn)Si={(t∈S)∧(t<Di)}∪{Di};并將各任務(wù)的調(diào)度點(diǎn)信息根據(jù)對(duì)應(yīng)的任務(wù)編號(hào)進(jìn)行存儲(chǔ);
其中,
其中,k是比任務(wù)i優(yōu)先級(jí)高的任務(wù)j的運(yùn)行次數(shù),Tj是指比任務(wù)i優(yōu)先級(jí)高的任務(wù)j的周期,i是指當(dāng)前處理的任務(wù)的編號(hào);t是指可能的調(diào)度點(diǎn)時(shí)間。
優(yōu)選地,上述支持非搶占實(shí)時(shí)任務(wù)集的節(jié)能調(diào)度方法,其步驟(2)包括如下子步驟:
(2.1)在任務(wù)的調(diào)度點(diǎn)計(jì)算高優(yōu)先級(jí)任務(wù)的搶占計(jì)算負(fù)荷,以及本任務(wù)和低優(yōu)先級(jí)任務(wù)運(yùn)行所需的計(jì)算負(fù)荷,采用基于時(shí)間需求分析的可調(diào)度性測(cè)試條件,計(jì)算出對(duì)應(yīng)的減速因子;
(2.2)當(dāng)任務(wù)包含有多個(gè)靜態(tài)調(diào)度點(diǎn)時(shí),計(jì)算出各靜態(tài)調(diào)度點(diǎn)所對(duì)應(yīng)的減速因子;為了取得更好的節(jié)能效果,從所計(jì)算出的減速因子中選擇最小值作為任務(wù)的減速因子。
優(yōu)選地,上述支持非搶占實(shí)時(shí)任務(wù)集的節(jié)能調(diào)度方法,其步驟(2.1)包括如下子步驟:
(2.1.1)根據(jù)任務(wù)編號(hào)查找任務(wù)的所有靜態(tài)調(diào)度點(diǎn);
(2.1.2)計(jì)算來(lái)自高優(yōu)先級(jí)任務(wù)的計(jì)算負(fù)荷;
(2.1.3)計(jì)算獲取本任務(wù)運(yùn)行所需最大阻塞計(jì)算負(fù)荷和低優(yōu)先級(jí)任務(wù)的計(jì)算負(fù)荷,將這些任務(wù)的減速因子均設(shè)為初始減速因子;
(2.1.4)采用基于時(shí)間需求分析的可調(diào)度性測(cè)試條件,在任務(wù)的每個(gè)靜態(tài)調(diào)度點(diǎn),計(jì)算出對(duì)應(yīng)的初始減速因子。
優(yōu)選地,上述支持非搶占實(shí)時(shí)任務(wù)集的節(jié)能調(diào)度方法,其步驟(2.2) 包括如下子步驟:
(2.2.1)當(dāng)任務(wù)包含有多個(gè)靜態(tài)調(diào)度點(diǎn)時(shí),遍歷該任務(wù)的靜態(tài)調(diào)度點(diǎn)列表,按遞增順序排列步驟(2.1.4)中計(jì)算出的該任務(wù)所有的初始減速因子;
(2.2.2)將上述所有的初始減速因子中的最小值作為該任務(wù)的最終執(zhí)行頻率。
優(yōu)選地,上述支持非搶占實(shí)時(shí)任務(wù)集的節(jié)能調(diào)度方法,其步驟(3)包括如下子步驟:
(3.1)判定任務(wù)是否能夠以所述初始減速因子執(zhí)行且在某個(gè)靜態(tài)調(diào)度點(diǎn)之前完成,若是,則進(jìn)入步驟(3.2);若否,則判斷任務(wù)能否以所述初始減速因子執(zhí)行且在所述靜態(tài)調(diào)度點(diǎn)的下一個(gè)靜態(tài)調(diào)度點(diǎn)之前完成,直到遍歷任務(wù)的所有靜態(tài)調(diào)度點(diǎn),確定任務(wù)在哪個(gè)靜態(tài)調(diào)度點(diǎn)之前完成,并進(jìn)入步驟(3.2);
(3.2)根據(jù)任務(wù)自身的截止期計(jì)算獲取高優(yōu)先級(jí)任務(wù)的計(jì)算負(fù)荷,從而獲取一個(gè)更低的減速因子集合;
(3.3)以所述減速因子集合中的最小值作為該任務(wù)的執(zhí)行速度,并將所述最小值作為該任務(wù)的候選減速因子。
本發(fā)明提供的上述調(diào)度方法,在確定減速因子的過(guò)程中充分考慮非搶占調(diào)度的特性,精確分析來(lái)自高優(yōu)先級(jí)任務(wù)的具體執(zhí)行次數(shù),獲得更低的減速因子,以保證實(shí)時(shí)任務(wù)的可調(diào)度性和非搶占任務(wù)的資源獨(dú)占性,并且達(dá)到節(jié)能的目的。
總體而言,通過(guò)本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,能夠取得下列有益效果:
(1)本發(fā)明提供的支持非搶占實(shí)時(shí)任務(wù)集的節(jié)能調(diào)度方法,充分考慮完全非搶占任務(wù),而現(xiàn)有技術(shù)只是考慮任務(wù)具有非搶占關(guān)鍵段的節(jié)能調(diào)度,本發(fā)明的方法克服了傳統(tǒng)方法在計(jì)算任務(wù)減速因子時(shí)過(guò)于保守、不能充分節(jié)約系統(tǒng)能耗的不足;
(2)本發(fā)明提供的支持非搶占實(shí)時(shí)任務(wù)集的節(jié)能調(diào)度方法,通過(guò)精確分析來(lái)自高優(yōu)先級(jí)任務(wù)的計(jì)算負(fù)荷來(lái)為每個(gè)任務(wù)求得一個(gè)更低的減速因子,使得任務(wù)集在頻率繼承策略下通過(guò)使用新的減速因子,以顯著降低系統(tǒng)能耗;該方法能夠顯著改善節(jié)能調(diào)度系統(tǒng)的能耗消耗,使得嵌入式設(shè)備的使用時(shí)間更長(zhǎng),調(diào)度性能更加可靠。
附圖說(shuō)明
圖1本發(fā)明實(shí)施例提供的支持非搶占實(shí)時(shí)任務(wù)集的節(jié)能調(diào)度方法的流程示意圖;
圖2為本發(fā)明實(shí)施例提供的節(jié)能調(diào)度方法中初始任務(wù)集合處理的流程示意圖;
圖3為本發(fā)明實(shí)施例提供的節(jié)能調(diào)度方法中初始減速因子計(jì)算的流程示意圖;
圖4為本發(fā)明實(shí)施例提供的節(jié)能調(diào)度方法中候選減速因子計(jì)算的流程示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
實(shí)施例中,給定如下三個(gè)周期性任務(wù),按照(周期、截止期、最壞執(zhí)行時(shí)間)表示為:τ1=(5,5,1),τ1=(10,10,2),τ1=(20,20,1);每個(gè)任務(wù)的最大阻塞時(shí)間為B1=2,B2=1,B3=0。
如圖1所示,是本發(fā)明實(shí)施例提供的支持非搶占實(shí)時(shí)任務(wù)集的節(jié)能調(diào)度方法的流程示意圖,包括如下步驟:
(1)初始任務(wù)集合處理,其流程如附圖2所示,將任務(wù)集合按照截止期遞增排序,計(jì)算每個(gè)任務(wù)的靜態(tài)調(diào)度點(diǎn);具體如下:
(1.1)讀取任務(wù)集信息
收集所有非搶占任務(wù)集的最壞執(zhí)行時(shí)間Ci、周期Ti、截止期Di,將所有任務(wù)集按照截止期Di遞增排序;
(1.2)根據(jù)上述排序的順序,計(jì)算出各任務(wù)的靜態(tài)調(diào)度點(diǎn)分別為本實(shí)例中,各個(gè)任務(wù)所對(duì)應(yīng)的調(diào)度點(diǎn)依次為:S2={5},S2={5,10},S3={5,10,15,20}。
(2)獲取初始減速因子,其流程如附圖3所示,對(duì)于任務(wù)集合中的每一個(gè)任務(wù),在其每個(gè)靜態(tài)調(diào)度點(diǎn)計(jì)算出所有可能的減速因子集合,將其中最小的減速因子作為該任務(wù)的執(zhí)行速度,并將該最小的減速因子作為該任務(wù)的初始減速因子,具體如下;
(2.1)獲取來(lái)自高優(yōu)先級(jí)任務(wù)的搶占計(jì)算負(fù)荷:
在各個(gè)任務(wù)的調(diào)度點(diǎn),首先計(jì)算來(lái)自高優(yōu)先級(jí)任務(wù)的搶占計(jì)算負(fù)荷
本實(shí)施例中,任務(wù)τ1的優(yōu)先級(jí)最高,則其受高優(yōu)先級(jí)任務(wù)的搶占計(jì)算負(fù)荷為0;而任務(wù)τ2則會(huì)受到來(lái)自高優(yōu)先級(jí)任務(wù)τ1的搶占,在調(diào)度點(diǎn)5處,計(jì)算得到的搶占負(fù)載為在調(diào)度點(diǎn)10處,計(jì)算得到搶占負(fù)載為
(2.2)獲取本任務(wù)和低優(yōu)先級(jí)任務(wù)運(yùn)行所需計(jì)算負(fù)荷:
在各個(gè)調(diào)度點(diǎn),計(jì)算本任務(wù)和低優(yōu)先級(jí)任務(wù)運(yùn)行所需計(jì)算負(fù)荷
本實(shí)施例中,任務(wù)τ1在調(diào)度點(diǎn)5處的計(jì)算負(fù)荷為類(lèi)似的,任務(wù)τ2在調(diào)度點(diǎn)10處的計(jì)算負(fù)荷為
(2.3)計(jì)算減速因子:
采用基于時(shí)間需求分析的可調(diào)度性測(cè)試條件,計(jì)算出對(duì)應(yīng)的減速因子;基于時(shí)間需求的可調(diào)度性測(cè)試條件,所有任務(wù)的計(jì)算負(fù)荷應(yīng)不大于當(dāng)前調(diào)度點(diǎn)時(shí)刻;
任務(wù)τ1在調(diào)度點(diǎn)5處的減速因子η1,根據(jù)獲??;η1=0.6;
任務(wù)τ2在調(diào)度點(diǎn)5處的減速因子η2,根據(jù)獲??;η2=0.8;
任務(wù)τ2在調(diào)度點(diǎn)10處的減速因子η2,根據(jù)獲??;η2=0.5;
(2.4)選取最小減速因子作為任務(wù)初始減速因子:
遍歷該任務(wù)的靜態(tài)調(diào)度點(diǎn)列表,重復(fù)步驟2.1至2.3;獲取任務(wù)在所有調(diào)度點(diǎn)的減速因子集合;為了取得更好的節(jié)能效果,選擇最小的減速因子作為任務(wù)的初始減速因子;
本實(shí)施例中,任務(wù)τ2在調(diào)度5處減速因子為0.8,在調(diào)度點(diǎn)10處減速因子為0.5,因此取0.5作為最終的初始減速因子;最終確定的任務(wù)集初始減速因子分別為:
(3)獲取候選減速因子集合:其流程如附圖4所示,對(duì)于任務(wù)的每個(gè)靜態(tài)調(diào)度點(diǎn),根據(jù)初始減速因子計(jì)算非搶占任務(wù)的實(shí)際計(jì)算負(fù)荷,獲取該任務(wù)的新的減速因子集合;并將新的減速因子集合中最大的減速因子作為該任務(wù)在該靜態(tài)調(diào)度點(diǎn)的候選減速因子;迭代計(jì)算每個(gè)靜態(tài)調(diào)度點(diǎn),最終獲取該任務(wù)的所有候選減速因子集合;具體包括如下步驟:
(3.1)判斷任務(wù)能否以初始減速因子在截止期之前執(zhí)行完畢:
對(duì)任務(wù)集中的每個(gè)任務(wù),首先檢測(cè)在最壞情況下,任務(wù)是否能夠以步驟2中計(jì)算出的初始減速因子執(zhí)行且在某個(gè)調(diào)度點(diǎn)之前完成;
譬如:本實(shí)施例中,任務(wù)τ2在其調(diào)度點(diǎn)10處,
成立,表明該任務(wù)以初始減速因子速度執(zhí)行時(shí),可以在調(diào)度點(diǎn)之前完成;
(3.2)精確計(jì)算來(lái)自于高優(yōu)先級(jí)任務(wù)的計(jì)算負(fù)荷:
如果步驟3.1中的判定條件在某個(gè)調(diào)度點(diǎn)成立,則根據(jù)用任務(wù)自身的截止期獲取一個(gè)更精確的來(lái)自于高優(yōu)先級(jí)任務(wù)的計(jì)算負(fù)荷;
在任務(wù)的截止期之前,計(jì)算任務(wù)各調(diào)度點(diǎn)處來(lái)自高優(yōu)先級(jí)任務(wù)的搶占計(jì)算負(fù)荷
本實(shí)施例中,任務(wù)τ1的優(yōu)先級(jí)最高,則其受高優(yōu)先級(jí)任務(wù)的搶占計(jì)算負(fù)荷為0;而任務(wù)τ2則會(huì)受到來(lái)自高優(yōu)先級(jí)任務(wù)τ1的搶占,在調(diào)度點(diǎn)5處,計(jì)算得到的搶占負(fù)載為在調(diào)度點(diǎn)10處,計(jì)算得到搶占負(fù)載為
(3.3)計(jì)算候選減速因子:
采用基于時(shí)間需求分析的可調(diào)度性測(cè)試條件,計(jì)算出對(duì)應(yīng)的減速因子;基于時(shí)間需求的可調(diào)度性測(cè)試條件,所有任務(wù)的計(jì)算負(fù)荷應(yīng)不大于任務(wù)截止期;采用截止期替代任務(wù)調(diào)度點(diǎn),從而獲取一個(gè)更低的減速因子集合。
本實(shí)施例中,任務(wù)τ2在調(diào)度點(diǎn)5處的減速因子根據(jù)確定,
(3.4)在該減速因子集合中,為了保證任務(wù)的截止期,并滿(mǎn)足在調(diào)度點(diǎn)之前完成所有計(jì)算負(fù)荷,選取步驟3.3所得的候選減速因子集合中最大的減速因子作為該任務(wù)的執(zhí)行速度,并將該減速因子作為該任務(wù)的候選減速因子;
本實(shí)施例中,任務(wù)τ2的候選減速因子應(yīng)選取步驟2中得到的初始減速因子和步驟3中得到的候選減速因子中較小的一個(gè),即η2=0.36;
(4)分配減速因子:
比較初始減速因子與候選減速因子,選擇其中的較小值作為該任務(wù)的減速因子;
(5)重復(fù)步驟2~4,直到所有任務(wù)均分配到減速因子。
本實(shí)施例中,最終得到的減速因子為實(shí)施例中,當(dāng)處理器利用率低于60%時(shí),采用本發(fā)明的節(jié)能調(diào)度方法,相比于其他方法能節(jié)約32%的能耗約;當(dāng)處理器利用率超過(guò)80%時(shí),采用本發(fā)明的節(jié)能調(diào)度方法,相比于其他方法能節(jié)約10%左右的能耗。
本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。