系統(tǒng)中任務(wù)可選部分可以使用的能量為:
[0103] Eoptl=Esup-Enand
[0104]經(jīng)過計算得出E_d= 582. 78006MJ,所以E一= 207. 61459MJ
[0105] 步驟九:在可用能量E。#下迭代地計算任務(wù)可選部分的執(zhí)行長度,并返回新的任 務(wù)集,其中每個任務(wù)可選部分的執(zhí)行長度已經(jīng)確定。其中,選取按EC從低到高排好序的整 個任務(wù)集中第一個任務(wù)作為開始任務(wù),然后進(jìn)行一下步驟:
[0106] 步驟C1:判讀是否所有任務(wù)可選部分的執(zhí)行長度已確定,如果是,返回;否則,執(zhí) 行步驟C2 ;
[0107] 步驟C2:判斷是否E。#大于0,如果是,執(zhí)行步驟C3;否則,令接下來還未確定可 選部分長度的所有任務(wù)可選部分的執(zhí)行長度為〇 ;
[0108] 步驟C3:判斷是否I#滿足當(dāng)前任務(wù)可選部分的完整執(zhí)行,如果是,則令當(dāng)且任務(wù) 的可選部分執(zhí)行長度為其可選部分完整長度;否則,執(zhí)行步驟C4 ;
[0109] 步驟C4:當(dāng)且任務(wù)可選部分的執(zhí)行長度為I#除以當(dāng)且任務(wù)-處理器能耗因子 EC;
[0110] 步驟C5:更新系統(tǒng)中剩余任務(wù)可選部分可以使用的能量E。#,并選取下一個任務(wù), 返回步驟C1 ;
[0111] 最后得到的新任務(wù)集為任務(wù)可選部分的執(zhí)行長度已確定的任務(wù)集,結(jié)果見下表 9 :
[0112] 表9確定可選部分執(zhí)行長度的新任務(wù)集:
[0115]步驟十:計算每個處理器上所應(yīng)該分配到的能量占整個系統(tǒng)可用能量的比例
[0117] 經(jīng)過計算各處理器的能量比例見下表10
[0118] 表10處理器占整個系統(tǒng)的能量比
[0119]
[0120] 步驟十一:對于每個處理器Θy結(jié)合系統(tǒng)采集到的能量來實時地調(diào)度任務(wù)。
[0121] 在此過程中,首先將電池中的能量按照比例系數(shù)匕分配給每個處理器,然后在調(diào) 度任務(wù)的過程中,對于采集到的能量也按照比例i分配給每個處理器,這樣每個處理器在 調(diào)度當(dāng)前任務(wù)時可以使用的能量由兩部分組成:分配到的電池能量,以及分配到的采集能 量。然后處理器按照分到的能量來調(diào)度任務(wù),在調(diào)度任務(wù)的時候首先檢查分配到的能量是 否可以滿足當(dāng)前任務(wù)的強(qiáng)制部分以及步驟九中確定的任務(wù)可選部分的執(zhí)行長度的執(zhí)行,如 果滿足,則任務(wù)就按此長度執(zhí)行,并且更新系統(tǒng)的服務(wù)質(zhì)量;如果不滿足,則檢查當(dāng)前能量 是否滿足任務(wù)強(qiáng)制部分的執(zhí)行,滿足則執(zhí)行,不滿足,則丟棄任務(wù)。
[0122] 最終系統(tǒng)的服務(wù)質(zhì)量為:
[0123] 通過本發(fā)明,可以在能量有限的情況下,通過任務(wù)分配和調(diào)度來最大化系統(tǒng)的服 務(wù)量。
【主權(quán)項】
1. 一種面向自主獲能異構(gòu)系統(tǒng)的非精確實時任務(wù)調(diào)度方法,其特征在于,該方法包括 W下步驟: 步驟一:獲取所有待分配的任務(wù)和所有待分配任務(wù)的處理器,并且計算所有處理器的 能耗貢獻(xiàn)因子,并將所有的處理器按照功耗貢獻(xiàn)因子從低到高進(jìn)行排序; 步驟二:取所有任務(wù)的分配長度為其強(qiáng)制部分,調(diào)度任務(wù)分配算法,并計算執(zhí)行強(qiáng)制部 分所需要的能量Eiw; 步驟Ξ:取所有任務(wù)的分配長度為其完整的長度,調(diào)度任務(wù)分配算法,并計算任務(wù)執(zhí)行 完整長度所需要的能量Ehigh;其中,所述完整的長度為完整的強(qiáng)制部分和可選部分; 步驟四:估計系統(tǒng)在任務(wù)集的調(diào)度周期[t,t+D]內(nèi)可W使用的能量Eg。。; 步驟五:判斷系統(tǒng)預(yù)測到的可用的能量氏。P與El胃W及Ehigh之間的關(guān)系,并確定最終的 任務(wù)分配長度; 步驟六:調(diào)度任務(wù)分配算法,將任務(wù)分配到處理器上; 步驟屯:計算所有處理器上任務(wù)-處理器能耗因子EC,并將任務(wù)按照"任務(wù)-處理器 能耗因子"進(jìn)行升序排列; 步驟八:計算所有任務(wù)執(zhí)行其強(qiáng)制部分所需要的能量,然后計算出所有任務(wù)的可選部 分可W使用的剩余能量Ewti; 步驟九:在系統(tǒng)可選部分可用能量下迭代地計算任務(wù)可選部分的執(zhí)行長度,并返回新 的任務(wù)集,其中每個任務(wù)可選部分的執(zhí)行長度已經(jīng)確定; 步驟十:計算每個處理器上所應(yīng)該分配到的能量占整個系統(tǒng)可用能量的比例hf; 步驟十一:對于每個處理器,結(jié)合系統(tǒng)采集到的能量來實時調(diào)度任務(wù)。2. 如權(quán)利要求1所述的方法,其特征在于,所述任務(wù)分配算法具體包括: 步驟A1 :根據(jù)任務(wù)的分配長度計算所有任務(wù)的能耗貢獻(xiàn)因子,并將任務(wù)按能耗耗貢獻(xiàn) 因子由高到低排序,并選取第一個處理器開始分配任務(wù); 步驟A2:依次將任務(wù)分配到處理器上,在分配每個任務(wù)的時候,檢查是否滿足任務(wù)的 時間約束W及當(dāng)前處理器的容量限制;如果不滿足條件,則選取下一個處理器,直到所有的 任務(wù)全部分配完或者所有的處理器全部用完;如果所有處理器已全部選取完,但仍然有任 務(wù)未完成分配,則分配失敗; 步驟A3 :返回并保存每個處理器上所分配的任務(wù)集。3. 如權(quán)利要求1所述的方法,其特征在于,所述步驟四中的估計系統(tǒng)在任務(wù)集的調(diào)度 周期比t+D]內(nèi)可W使用的能量E,up是使用指數(shù)平滑預(yù)測法,通過計算指數(shù)平滑值,并配合 一定的時間序列模型對未來一段時期的序列進(jìn)行預(yù)測;其原理是任一期的指數(shù)平滑值都是 本期實際觀察值與前一期指數(shù)平滑值的加權(quán)平均;指數(shù)平滑法基于如下公式:其中,每指代第i期的指數(shù)平滑值;而是第i期的觀察值;ω(0《ω《1)是平滑 常數(shù),它使得指數(shù)平滑具有隨時間遞減的性質(zhì);餐-1則是第i-1期的指數(shù)平滑值。4. 如權(quán)利要求1所述的方法,其特征在于,所述步驟五中的確定最終的任務(wù)分配長度 具體包括: 步驟B1:判斷氏。P是否小于或等于El胃,如果是,則令所有任務(wù)的分配長度都為其強(qiáng)制 部分;否則,執(zhí)行步驟B2; 步驟B2:判讀Eg。。是否大于或等于EMgh,如果是,則令所有任務(wù)的分配長度為其完整的 長度;否則,執(zhí)行步驟B3; 步驟B3:令任務(wù)的分配長度為其強(qiáng)制部分和完整部分長度的中值; 步驟B4 :調(diào)度任務(wù)分配算法,計算任務(wù)執(zhí)行分配長度所需要的能量Ed。。; 步驟B5:判斷|Egup-EdJ<ε,如果滿足,則得到任務(wù)的分配長度;否則,執(zhí)行步驟B6 ;其 中,ε為一個很小的正數(shù),取值0-0. 1; 步驟Β6 :判斷是否氏。Ρ大于Εd。。,如果是,則令任務(wù)的分配長度為其右區(qū)間的中值;否 貝1J,令任務(wù)的分配長度為其左區(qū)間的中值,并返回步驟B4。5. 如權(quán)利要求1所述的方法,其特征在于,所述步驟九中的計算任務(wù)可選部分的執(zhí)行 長度具體包括: 步驟C1:判讀是否所有任務(wù)可選部分的執(zhí)行長度已確定,如果是,步驟九結(jié)束;否則, 執(zhí)行步驟C2 ; 步驟C2:判斷是否Ewti大于0,如果是,執(zhí)行步驟C3 ;否則,令接下來還未確定可選部 分長度的所有任務(wù)可選部分的執(zhí)行長度為0,步驟九結(jié)束; 步驟C3:判斷是否Ewti滿足當(dāng)前任務(wù)可選部分的完整執(zhí)行,如果是,則令當(dāng)前任務(wù)的可 選部分執(zhí)行長度為其可選部分完整長度;否則,執(zhí)行步驟C4 ; 步驟C4:當(dāng)前任務(wù)可選部分的執(zhí)行長度為Ewti除W當(dāng)前任務(wù)-處理器能耗因子EC; 步驟巧:更新系統(tǒng)中剩余任務(wù)可選部分能夠使用的能量Ewti,并選取下一個任務(wù),返回 步驟C1。6. 如權(quán)利要求1所述的方法,其特征在于,所述步驟十一中實時調(diào)度任務(wù)具體包括: 步驟D1 :基于比例系數(shù)hf,將系統(tǒng)中的能量分配給每個處理器; 步驟D2 :判斷處理器Θf上的任務(wù)是否都已經(jīng)執(zhí)行完,如果是,則步驟十一結(jié)束;否則, 執(zhí)行步驟D3 ; 步驟D3 :判斷處理器Θt中可用的能量是否能夠支持當(dāng)前任務(wù)完成其強(qiáng)制部分和由步 驟九求出的任務(wù)可選部分的執(zhí)行長度的執(zhí)行,如果可W,則執(zhí)行該任務(wù)的強(qiáng)制部分和其求 出的任務(wù)可選部分的執(zhí)行長度;否則,執(zhí)行步驟D4 ; 步驟D4 :判斷處理器Θf中可用的能量是否能夠支持當(dāng)前任務(wù)完成其強(qiáng)制部分,如果 可W,則執(zhí)行該任務(wù)的強(qiáng)制部分,否則,丟棄該任務(wù); 步驟D5 :更新處理器Θf中可用的能量,并選取下一個任務(wù);返回步驟D2。
【專利摘要】本發(fā)明公開了一種面向自主獲能異構(gòu)系統(tǒng)的非精確實時任務(wù)調(diào)度方法,包括以下步驟:計算處理器的能耗貢獻(xiàn)因子,將處理器按能耗貢獻(xiàn)因子由低到高排序;取任務(wù)分配長度為強(qiáng)制部分,調(diào)度任務(wù)分配算法,計算所需能量Elow;取任務(wù)分配長度為其完整部分,調(diào)度任務(wù)分配任務(wù),計算所需能量Ehigh;估計系統(tǒng)在周期D內(nèi)可用的能量Esup;確定最終的任務(wù)分配長度;調(diào)度任務(wù)分配算法,將任務(wù)分配到處理器上;計算任務(wù)-處理器能耗因子EC,將任務(wù)按照EC進(jìn)行升序排列;計算所有任務(wù)可選部分可以使用的剩余能量Eoptl;迭代地計算任務(wù)可選部分的執(zhí)行長度;計算每個處理器上所分配的能量;實時調(diào)度任務(wù)。使用本發(fā)明能夠使得在相同的條件下獲得較高的服務(wù)質(zhì)量。
【IPC分類】G06F9/48
【公開號】CN105242966
【申請?zhí)枴緾N201510626523
【發(fā)明人】汪俊馬, 魏同權(quán), 周俊龍
【申請人】華東師范大學(xué)
【公開日】2016年1月13日
【申請日】2015年9月28日