本發(fā)明涉及實(shí)時(shí)系統(tǒng)與混合關(guān)鍵性系統(tǒng),尤其涉及了一種面向混合關(guān)鍵性實(shí)時(shí)系統(tǒng)的容錯(cuò)性任務(wù)調(diào)度方法。
背景技術(shù):
在通用硬件平臺(tái)上整合不同認(rèn)證要求的安全關(guān)鍵性任務(wù)已經(jīng)成為實(shí)時(shí)和嵌入式系統(tǒng)設(shè)計(jì)的發(fā)展趨勢(shì),過(guò)去十年中,在解決任務(wù)最壞執(zhí)行時(shí)間的不確定性問(wèn)題上,以及混合關(guān)鍵性系統(tǒng)的服務(wù)質(zhì)量和可調(diào)度性問(wèn)題上,學(xué)術(shù)界已經(jīng)付出巨大努力。
本領(lǐng)域的研究人員提出了混合關(guān)鍵調(diào)度問(wèn)題和一種固定優(yōu)先級(jí)搶占式調(diào)度算法,它被證明在預(yù)先固定優(yōu)先級(jí)的算法中是最佳算法;該領(lǐng)域的研究人員研究了在單處理器混合關(guān)鍵系統(tǒng)上的固定優(yōu)先級(jí)調(diào)度問(wèn)題,提出了一種新的優(yōu)先級(jí)分配方案,并提供了一個(gè)充分的響應(yīng)時(shí)間分析;除此之外,混合關(guān)鍵性系統(tǒng)非固定優(yōu)先級(jí)算法也引起了廣泛探討。為解決傳統(tǒng)混合關(guān)鍵調(diào)度算法中低關(guān)鍵性任務(wù)服務(wù)的突發(fā)問(wèn)題,該領(lǐng)域的研究人員研究了一種彈性混合關(guān)鍵任務(wù)模型,特別允許低關(guān)鍵性任務(wù)有可變周期。此外,他們還提出了用提前釋放EDF調(diào)度算法來(lái)提高低關(guān)鍵性任務(wù)的執(zhí)行頻率,避免違反高優(yōu)先級(jí)任務(wù)的時(shí)間約束。然而,這些研究都存在容錯(cuò)問(wèn)題。
對(duì)于安全關(guān)鍵的嵌入式系統(tǒng),系統(tǒng)的各種功能都必須確保能適應(yīng)外界的各種壓力,如硬件/軟件下保證(HW/SW)誤差和電力短缺。而容錯(cuò)是系統(tǒng)設(shè)計(jì)中特別必要的,因?yàn)樗芊乐節(jié)撛诘墓收希詫?shí)現(xiàn)高的安全性和可靠性。
現(xiàn)在已經(jīng)有了很多容錯(cuò)技術(shù),如雙/三模冗余,重新執(zhí)行和檢查點(diǎn)回滾,它們被廣泛用于處理故障的發(fā)生。最近的一些研究已經(jīng)集中于解決存在瞬時(shí)故障的混合關(guān)鍵性系統(tǒng)中容錯(cuò)任務(wù)映射與調(diào)度問(wèn)題。該領(lǐng)域的研究人員提出了一種可同時(shí)滿足混合關(guān)鍵性系統(tǒng)的安全需求和可調(diào)度要求的方法。他們還根據(jù)安全標(biāo)準(zhǔn),對(duì)不同關(guān)鍵性級(jí)別的安全要求進(jìn)行明確建模;該領(lǐng)域的研究人員還提出了一種混合關(guān)鍵性程序在異構(gòu)多處理器系統(tǒng)上的靜態(tài)最優(yōu)映射方案,該方案能保證混合關(guān)鍵性程序在最壞情況下也可運(yùn)行;該領(lǐng)域的研究人員對(duì)混合關(guān)鍵性系統(tǒng)的容錯(cuò)機(jī)制建模,提出了一種方法來(lái)解決實(shí)時(shí)、容錯(cuò)和混合關(guān)鍵約束間的時(shí)間依賴關(guān)系。然而,所有的上述研究都沒(méi)有利用處理器的空閑時(shí)間來(lái)提高混合關(guān)鍵性系統(tǒng)的可靠性和可調(diào)度性,而且,它們都沒(méi)有設(shè)計(jì)提高和確保高關(guān)鍵性任務(wù)優(yōu)先級(jí)的機(jī)制。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)存在的不足,本發(fā)明的目的就在于提供了一種面向混合關(guān)鍵性實(shí)時(shí)系統(tǒng)的容錯(cuò)性任務(wù)調(diào)度方法,研究了混合關(guān)鍵性系統(tǒng)在存在瞬態(tài)故障的單處理器上的任務(wù)調(diào)度,基于虛擬截止時(shí)間的最早截止時(shí)間優(yōu)先調(diào)度(EDF-VD)和改進(jìn)的周期轉(zhuǎn)換方法,利用處理器空閑時(shí)間利用率(UIT)和任務(wù)重復(fù)執(zhí)行技術(shù),以提高系統(tǒng)的可靠性和可調(diào)度性。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是這樣的:
一種面向混合關(guān)鍵性實(shí)時(shí)系統(tǒng)的容錯(cuò)任務(wù)調(diào)度方法,包括以下步驟:
(1)任務(wù)集模型建立;
(2)任務(wù)集預(yù)處理,就緒隊(duì)列置空;
(3)判斷就緒隊(duì)列以及系統(tǒng)的狀態(tài);
(4)根據(jù)任務(wù)關(guān)鍵性執(zhí)行任務(wù);
(5)驗(yàn)錯(cuò)并判斷是否重執(zhí)行;
(6)任務(wù)執(zhí)行完畢,轉(zhuǎn)步驟(3)。
作為一種優(yōu)選方案,所述步驟(1)具體包括以下步驟:
步驟A1:雙關(guān)鍵任務(wù)集Γ模型的建立:
Γ={τ1,τ2,…,τi,…τn}
其中n為任務(wù)集Γ中相互獨(dú)立的實(shí)時(shí)周期性任務(wù)的個(gè)數(shù);
步驟A2:雙關(guān)鍵任務(wù)τi模型的建立:
τi={Ti,Di,Ni,Li,Ci}
其中1≤i≤n,Ti為任務(wù)τi的周期,Di為任務(wù)τi的相對(duì)截止時(shí)間,Ni為任務(wù)τi在執(zhí)行時(shí)可以被容忍的最大瞬時(shí)錯(cuò)誤個(gè)數(shù),Li∈{LO,HI}為任務(wù)τi的關(guān)鍵性,LO為低關(guān)鍵性,HI為高關(guān)鍵性,Ci為任務(wù)τi在最壞情況下的執(zhí)行時(shí)間;
步驟A3:實(shí)時(shí)約束關(guān)系的建立:
其中Ci(LO)表示τi為低關(guān)鍵性任務(wù)時(shí)的最壞執(zhí)行時(shí)間,Ci(HI)表示τi為高關(guān)鍵性任務(wù)時(shí)的最壞執(zhí)行時(shí)間,任務(wù)的相對(duì)截止時(shí)間小于等于任務(wù)的周期,該約束關(guān)系表明任務(wù)的最壞執(zhí)行時(shí)間應(yīng)少于任務(wù)的相對(duì)截止時(shí)間;
步驟A4:任務(wù)釋放時(shí)間約束關(guān)系的建立:
其中為任務(wù)τi的第k個(gè)作業(yè)的釋放時(shí)間。
作為一種優(yōu)選方案,所述步驟(2)具體包括以下步驟:
步驟B1:低關(guān)鍵性任務(wù)子集LO(Γ)模型的建立:
LO(Γ)={τi∈Γ|Li=LO};
步驟B2:高關(guān)鍵性任務(wù)子集HI(Γ)模型的建立:
HI(Γ)={τi∈Γ|Li=HI};
步驟B3:任務(wù)執(zhí)行次數(shù)Υi模型的建立:
Υi=2Ni+1;
步驟B4:任務(wù)虛擬截止時(shí)間模型的建立:
其中Δi是實(shí)際釋放時(shí)間和虛擬釋放時(shí)間的偏移量;
假設(shè)兩個(gè)作業(yè)和同時(shí)被釋放并具有相同的相對(duì)截止時(shí)間(Di=Dj),那么
這表明低關(guān)鍵性任務(wù)的虛擬截止時(shí)間比高關(guān)鍵性任務(wù)的虛擬截止時(shí)間更長(zhǎng);
設(shè)置高關(guān)鍵性任務(wù)的Δi=Ci,設(shè)置低關(guān)鍵性任務(wù)的Δi=0,
這樣可以保證高關(guān)鍵性任務(wù)有較高的優(yōu)先級(jí);
步驟B5:根據(jù)步驟B4對(duì)周期轉(zhuǎn)換技術(shù)(PT)進(jìn)行改進(jìn),然后應(yīng)用于任務(wù)集,進(jìn)行預(yù)處理,可得到
步驟B6:建立就緒隊(duì)列Qready,并置空。
作為一種優(yōu)選方案,所述步驟(3)具體包括以下步驟:
步驟C1:把Γ′中釋放的任務(wù)加到就緒隊(duì)列Qready;
步驟C2:如果系統(tǒng)處于空閑狀態(tài)(State=idle)并且就緒隊(duì)列非空轉(zhuǎn)步驟C3;否則轉(zhuǎn)步驟(2);
步驟C3:根據(jù)最小截止時(shí)間優(yōu)先-虛擬截止時(shí)間(EDF-VD)算法將任務(wù)從Qready中出隊(duì)。
作為一種優(yōu)選方案,所述步驟(4)具體包括以下步驟:
步驟D1:低關(guān)鍵性任務(wù)子集LO(Γ)模型的建立:
LO(Γ)={τi∈Γ|Li=LO};
步驟D2:高關(guān)鍵性任務(wù)子集HI(Γ)模型的建立:
HI(Γ)={τi∈Γ|Li=HI};
步驟D3:判斷任務(wù)的關(guān)鍵性;
步驟D4:如果Li=HI,轉(zhuǎn)步驟D6;否則轉(zhuǎn)步驟D5;
步驟D5:執(zhí)行轉(zhuǎn)步驟D6;
步驟D6:執(zhí)行并利用fingerprint技術(shù)存儲(chǔ)任務(wù)執(zhí)行情況,以用于故障檢驗(yàn)。
作為一種優(yōu)選方案,所述步驟(5)具體包括以下步驟:
步驟E1:采用重執(zhí)行方法的任務(wù)可靠性R(τi)模型的建立:
其中,λ為任務(wù)τi的平均到達(dá)錯(cuò)誤率;
步驟E2:系統(tǒng)安全指標(biāo)S(Γ,H)模型的建立:
其中,超周期H是周期{T1,T2,…,Tn}的最小公倍數(shù),是按時(shí)執(zhí)行完的任務(wù)實(shí)例個(gè)數(shù),是任務(wù)實(shí)例總數(shù);
步驟E3:采用重執(zhí)行方法的任務(wù)集利用率U模型的建立:
其中,任務(wù)集利用率不能超過(guò)1,即U≤1;
步驟E4:根據(jù)記錄的任務(wù)執(zhí)行情況,比較得到故障檢驗(yàn)的結(jié)果如果是錯(cuò)誤的,轉(zhuǎn)步驟E6。
步驟E5:從Qready出隊(duì),轉(zhuǎn)步驟E6;
步驟E6:所有低關(guān)鍵性任務(wù)從Qready出隊(duì)并執(zhí)行即存在錯(cuò)誤需要重新執(zhí)行。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果:本發(fā)明對(duì)于給定的一個(gè)任務(wù)集,采用改進(jìn)的周期轉(zhuǎn)換方法對(duì)高關(guān)鍵性任務(wù)進(jìn)行預(yù)處理,以保證高關(guān)鍵性任務(wù)的優(yōu)先執(zhí)行;然后根據(jù)最小截止時(shí)間優(yōu)先(EDF)-虛擬截止時(shí)間(VD)算法,確定該任務(wù)集中所有就緒任務(wù)的調(diào)度順序;在系統(tǒng)執(zhí)行高關(guān)鍵性任務(wù)時(shí),進(jìn)行錯(cuò)誤檢驗(yàn);當(dāng)高關(guān)鍵性任務(wù)執(zhí)行出錯(cuò)時(shí),執(zhí)行其備份任務(wù)以保證系統(tǒng)的可靠性,并放棄執(zhí)行剩余的低關(guān)鍵性任務(wù)以保證系統(tǒng)的可調(diào)度性,提供一個(gè)更安全可靠的系統(tǒng)。
附圖說(shuō)明
圖1為本發(fā)明的流程圖;
圖2為在處理器利用率變化下,Slice-EDF-VD、EDF、EDF-VD可靠性對(duì)比圖一;
圖3為在處理器利用率變化下,Slice-EDF-VD、EDF、EDF-VD可靠性對(duì)比圖二;
圖4為在處理器利用率變化下,Slice-EDF-VD、EDF、EDF-VD可行性對(duì)比圖一;
圖5為在處理器利用率變化下,Slice-EDF-VD、EDF、EDF-VD可行性對(duì)比圖二;
圖6為在任務(wù)集大小變化下,Slice-EDF-VD、EDF、EDF-VD的CPU占用時(shí)間對(duì)比圖一;
圖7為在任務(wù)集大小變化下,Slice-EDF-VD、EDF、EDF-VD的CPU占用時(shí)間對(duì)比圖二;
圖8為在任務(wù)集大小變化下,Slice-EDF-VD、EDF、EDF-VD的可靠性與可行性對(duì)比圖一;
圖9為在任務(wù)集大小變化下,Slice-EDF-VD、EDF、EDF-VD的可靠性與可行性對(duì)比圖二;
圖10為在任務(wù)集大小變化下,Slice-EDF-VD、EDF、EDF-VD的可靠性與可行性對(duì)比圖三。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述。以下實(shí)施例僅用于更加清楚地說(shuō)明本發(fā)明的技術(shù)方案,而不能以此來(lái)限制本發(fā)明的保護(hù)范圍。
實(shí)施例:
如圖1所示,一種面向混合關(guān)鍵性實(shí)時(shí)系統(tǒng)的容錯(cuò)任務(wù)調(diào)度方法,包括以下步驟:
(1)任務(wù)集模型建立;
(2)任務(wù)集預(yù)處理,就緒隊(duì)列置空;
(3)判斷就緒隊(duì)列以及系統(tǒng)的狀態(tài);
(4)根據(jù)任務(wù)關(guān)鍵性執(zhí)行任務(wù);
(5)驗(yàn)錯(cuò)并判斷是否重執(zhí)行;
(6)任務(wù)執(zhí)行完畢,轉(zhuǎn)步驟(3)。
作為一種優(yōu)選方案,所述步驟(1)具體包括以下步驟:
步驟A1:雙關(guān)鍵任務(wù)集Γ模型的建立:
Γ={τ1,τ2,…,τi,…τn}
其中n為任務(wù)集Γ中相互獨(dú)立的實(shí)時(shí)周期性任務(wù)的個(gè)數(shù);
步驟A2:雙關(guān)鍵任務(wù)τi模型的建立:
τi={Ti,Di,Ni,Li,Ci}
其中1≤i≤n,Ti為任務(wù)τi的周期,Di為任務(wù)τi的相對(duì)截止時(shí)間,Ni為任務(wù)τi在執(zhí)行時(shí)可以被容忍的最大瞬時(shí)錯(cuò)誤個(gè)數(shù),Li∈{LO,HI}為任務(wù)τi的關(guān)鍵性,LO為低關(guān)鍵性,HI為高關(guān)鍵性,Ci為任務(wù)τi在最壞情況下的執(zhí)行時(shí)間;
步驟A3:實(shí)時(shí)約束關(guān)系的建立:
其中Ci(LO)表示τi為低關(guān)鍵性任務(wù)時(shí)的最壞執(zhí)行時(shí)間,Ci(HI)表示τi為高關(guān)鍵性任務(wù)時(shí)的最壞執(zhí)行時(shí)間,任務(wù)的相對(duì)截止時(shí)間小于等于任務(wù)的周期,該約束關(guān)系表明任務(wù)的最壞執(zhí)行時(shí)間應(yīng)少于任務(wù)的相對(duì)截止時(shí)間;
步驟A4:任務(wù)釋放時(shí)間約束關(guān)系的建立:
其中為任務(wù)τi的第k個(gè)作業(yè)的釋放時(shí)間。
作為一種優(yōu)選方案,所述步驟(2)具體包括以下步驟:
步驟B1:低關(guān)鍵性任務(wù)子集LO(Γ)模型的建立:
LO(Γ)={τi∈Γ|Li=LO};
步驟B2:高關(guān)鍵性任務(wù)子集HI(Γ)模型的建立:
HI(Γ)={τi∈Γ|Li=HI};
步驟B3:任務(wù)執(zhí)行次數(shù)Υi模型的建立:
Υi=2Ni+1;
步驟B4:任務(wù)虛擬截止時(shí)間模型的建立:
其中Δi是實(shí)際釋放時(shí)間和虛擬釋放時(shí)間的偏移量;
假設(shè)兩個(gè)作業(yè)和同時(shí)被釋放并具有相同的相對(duì)截止時(shí)間(Di=Dj),那么
這表明低關(guān)鍵性任務(wù)的虛擬截止時(shí)間比高關(guān)鍵性任務(wù)的虛擬截止時(shí)間更長(zhǎng);
設(shè)置高關(guān)鍵性任務(wù)的Δi=Ci,設(shè)置低關(guān)鍵性任務(wù)的Δi=0,
這樣可以保證高關(guān)鍵性任務(wù)有較高的優(yōu)先級(jí);
步驟B5:根據(jù)步驟B4對(duì)周期轉(zhuǎn)換技術(shù)(PT)進(jìn)行改進(jìn),然后應(yīng)用于任務(wù)集,進(jìn)行預(yù)處理,可得到
步驟B6:建立就緒隊(duì)列Qready,并置空。
作為一種優(yōu)選方案,所述步驟(3)具體包括以下步驟:
步驟C1:把Г′中釋放的任務(wù)加到就緒隊(duì)列Qready;
步驟C2:如果系統(tǒng)處于空閑狀態(tài)(State=idle)并且就緒隊(duì)列非空轉(zhuǎn)步驟C3;否則轉(zhuǎn)步驟(2);
步驟C3:根據(jù)最小截止時(shí)間優(yōu)先-虛擬截止時(shí)間(EDF-VD)算法將任務(wù)從Qready中出隊(duì)。
作為一種優(yōu)選方案,所述步驟(4)具體包括以下步驟:
步驟D1:低關(guān)鍵性任務(wù)子集LO(Γ)模型的建立:
LO(Γ)={τi∈Γ|Li=LO};
步驟D2:高關(guān)鍵性任務(wù)子集HI(Γ)模型的建立:
HI(Γ)={τi∈Γ|Li=HI};
步驟D3:判斷任務(wù)的關(guān)鍵性;
步驟D4:如果Li=HI,轉(zhuǎn)步驟D6;否則轉(zhuǎn)步驟D5;
步驟D5:執(zhí)行轉(zhuǎn)步驟D6;
步驟D6:執(zhí)行并利用fingerprint技術(shù)存儲(chǔ)任務(wù)執(zhí)行情況,以用于故障檢驗(yàn)。
作為一種優(yōu)選方案,所述步驟(5)具體包括以下步驟:
步驟E1:采用重執(zhí)行方法的任務(wù)可靠性R(τi)模型的建立:
其中,λ為任務(wù)τi的平均到達(dá)錯(cuò)誤率;
步驟E2:系統(tǒng)安全指標(biāo)S(Γ,H)模型的建立:
其中,超周期H是周期{T1,T2,…,Tn}的最小公倍數(shù),是按時(shí)執(zhí)行完的任務(wù)實(shí)例個(gè)數(shù),是任務(wù)實(shí)例總數(shù);
步驟E3:采用重執(zhí)行方法的任務(wù)集利用率U模型的建立:
其中,任務(wù)集利用率不能超過(guò)1,即U≤1;
步驟E4:根據(jù)記錄的任務(wù)執(zhí)行情況,比較得到故障檢驗(yàn)的結(jié)果如果是錯(cuò)誤的,轉(zhuǎn)步驟E6。
步驟E5:從Qready出隊(duì),轉(zhuǎn)步驟E6;
步驟E6:所有低關(guān)鍵性任務(wù)從Qready出隊(duì)并執(zhí)行即存在錯(cuò)誤需要重新執(zhí)行。
本發(fā)明中的任務(wù)集Γ在單處理器上以固定的頻率運(yùn)行,處理器有忙碌和空閑兩種狀態(tài),多關(guān)鍵性混合系統(tǒng)也有高關(guān)鍵性(HI)和低關(guān)鍵性(LO)兩種關(guān)鍵性,任務(wù)集Γ={τ1,τ2,…,τi,…,τn}由n個(gè)獨(dú)立的周期任務(wù)組成,任務(wù)τi={Ti,Di,Ni,Li,Ci},其中:1≤i≤n,Ti為任務(wù)τi的周期,Di為任務(wù)τi的相對(duì)截止時(shí)間,Ni為任務(wù)τi在執(zhí)行時(shí)可以被容忍的最大瞬時(shí)故障個(gè)數(shù),Li∈{LO,HI}為任務(wù)τi的關(guān)鍵性,Ci為任務(wù)τi在最壞情況下的執(zhí)行時(shí)間,并且存在實(shí)時(shí)約束關(guān)系每一個(gè)任務(wù)τi都會(huì)根據(jù)周期性特點(diǎn)釋放出一系列(可能無(wú)限)的任務(wù)釋放時(shí)間,用來(lái)表示任務(wù)τi的第k個(gè)作業(yè)的釋放時(shí)間,那么約束關(guān)系建立為根據(jù)任務(wù)的關(guān)鍵性水平,可以將任務(wù)集Γ劃分為兩個(gè)子集,讓LO(Γ)={τi∈Γ|Li=LO}代表低關(guān)鍵性任務(wù)子集,并用HI(Γ)={τi∈Γ|Li=HI}代表高臨界任務(wù)集子集;那么,執(zhí)行任務(wù)集的處理器利用率可以計(jì)算為高關(guān)鍵性任務(wù)的可靠性是一般要求高于一個(gè)系統(tǒng)指定的閾值,也高于低關(guān)鍵性任務(wù)。
本發(fā)明采用指數(shù)分布對(duì)系統(tǒng)的瞬時(shí)錯(cuò)誤進(jìn)行建模,用λ表示每秒的預(yù)期錯(cuò)誤發(fā)生數(shù);任務(wù)τi的可靠性表示為其中Ci是任務(wù)最壞執(zhí)行時(shí)間;本發(fā)明采用重執(zhí)行來(lái)增強(qiáng)系統(tǒng)可靠性,用Ni表示任務(wù)τi可以容忍的錯(cuò)誤數(shù),那么任務(wù)τi的執(zhí)行次數(shù)γi可表示為γi=2Ni+1,因此可靠性R(τi)可以表示如下:
本發(fā)明提出多關(guān)鍵性系統(tǒng)的安全性指標(biāo),并且展示了對(duì)于提高系統(tǒng)可調(diào)度性而言,舍棄部分任務(wù)的必要性,用超周期H表示任務(wù)集Γ周期{T1,T2,…,Tn}的最小公倍數(shù),M是按時(shí)執(zhí)行完的任務(wù)實(shí)例個(gè)數(shù),那么是任務(wù)實(shí)例總數(shù),則系統(tǒng)安全指標(biāo)S(Γ,H)可表示為顯然,可以通過(guò)提高高關(guān)鍵性任務(wù)的可靠性以及任務(wù)集的實(shí)時(shí)可行性來(lái)改善系統(tǒng)安全;然而,利用重執(zhí)行提高任務(wù)可靠性將會(huì)引起處理器利用率升高,這將導(dǎo)致大量的任務(wù)錯(cuò)過(guò)它們的截止時(shí)間;因此,為了提高系統(tǒng)安全指標(biāo)必須平衡好可靠性和實(shí)時(shí)可行性之間的關(guān)系,在重執(zhí)行方法下的任務(wù)集利用率U可以表示為其中:U≤1;隨著重執(zhí)行引起的時(shí)間增加,任務(wù)集可能不可調(diào)度;為了保證任務(wù)集的可調(diào)度性,系統(tǒng)的利用率必須低于滿足U≤1;通常用兩種方法來(lái)減少系統(tǒng)的利用率:一種方法是用更高的頻率來(lái)執(zhí)行任務(wù),然而我們的處理器頻率是固定的;另一種方法是通過(guò)拋棄低關(guān)鍵性任務(wù)來(lái)降低任務(wù)利用率繼而提升任集可調(diào)度性。
本發(fā)明對(duì)周期變換(PT)方法進(jìn)行改進(jìn),PT方法把任務(wù)τi的周期Ti,相對(duì)截止時(shí)間Di以及最壞情況執(zhí)行時(shí)間Ci切分成Xi部分,得到更小的周期相對(duì)截止時(shí)間和最壞情況執(zhí)行時(shí)間本發(fā)明采用改進(jìn)的PT方法對(duì)任務(wù)集進(jìn)行預(yù)處理,其中高關(guān)鍵性任務(wù)τi被冗余化成γi個(gè)任務(wù)其中每一個(gè)任務(wù)τi,j(1≤j≤γi)的執(zhí)行時(shí)間為Ci、虛擬截止時(shí)間為任務(wù)集Γ經(jīng)過(guò)改進(jìn)的PT方法預(yù)處理為
本發(fā)明采用EDF-VD算法來(lái)保證高關(guān)鍵性任務(wù)可以擁有高優(yōu)先級(jí),把這種融合改進(jìn)之后的EDF-VD算法稱為Slice-EDF-VD算法;首先提出了虛擬化截止時(shí)間的概念并且計(jì)算每個(gè)任務(wù)的虛擬截止時(shí)間,然后根據(jù)EDF算法利用虛擬截止時(shí)間來(lái)確定任務(wù)調(diào)度優(yōu)先級(jí);任務(wù)虛擬截止時(shí)間可以表示為其中Δi是實(shí)際釋放時(shí)間和虛擬釋放時(shí)間的偏移量;假設(shè)兩個(gè)作業(yè)和同時(shí)釋放并且相對(duì)截止時(shí)間相同(Di=Dj),那么這表明低關(guān)鍵性任務(wù)的虛擬截止時(shí)間更長(zhǎng)。所以設(shè)置高關(guān)鍵性任務(wù)的Δi=Ci,設(shè)置低關(guān)鍵性任務(wù)的Δi=0,得到
這樣可以保證高關(guān)鍵性任務(wù)有較高的優(yōu)先級(jí),再根據(jù)EDF-VD算法進(jìn)行調(diào)度安排即可。
具體實(shí)施時(shí),采用以下流程:
步驟1:利用Intel Quad-Core處理器作為仿真平臺(tái),處理器主頻2.1GHz,內(nèi)存6GB。用Python 2.7.8來(lái)實(shí)現(xiàn)本發(fā)明的算法,任務(wù)的平均錯(cuò)誤到達(dá)率λ=1×10-5;
步驟2:因?yàn)檩^大的Ni會(huì)導(dǎo)致任務(wù)執(zhí)行時(shí)間和系統(tǒng)利用率升高,但是為了使仿真系統(tǒng)有相對(duì)較高的可調(diào)度性,估計(jì)Ni=1和Ni=2,即在仿真實(shí)驗(yàn)中對(duì)于低關(guān)鍵性任務(wù)γi=1,對(duì)于高關(guān)鍵性任務(wù)γi設(shè)置為3和5;
步驟3:在處理器利用率變化的情況下,將本發(fā)明的Slice-EDF-VD算法與EDF、EDF-VD算法作比較可知,Slice-EDF-VD算法可以獲得更高的可靠性,在圖2中,設(shè)置低關(guān)鍵性任務(wù)γi=1,高關(guān)鍵性任務(wù)γi=3,實(shí)驗(yàn)結(jié)果顯示Slice-EDF-VD的平均可靠性比EDF高7.8%、比EDF-VD的高4.6%,在圖3中,設(shè)置低關(guān)鍵性任務(wù)γi=1,高關(guān)鍵性任務(wù)γi=5,實(shí)驗(yàn)結(jié)果顯示Slice-EDF-VD的平均可靠性比EDF高8.0%、比EDF-VD的高2.99%,由圖可知,由于重執(zhí)行的次數(shù)更多,所以高關(guān)鍵性任務(wù)γi=5的可靠性比γi=3高;
步驟4:在處理器利用率變化的情況下,將本發(fā)明的Slice-EDF-VD算法與EDF、EDF-VD算法作比較可知,Slice-EDF-VD算法可以獲得更高的實(shí)時(shí)可行性,在圖4中,設(shè)置低關(guān)鍵性任務(wù)γi=1,高關(guān)鍵性任務(wù)γi=3,實(shí)驗(yàn)結(jié)果顯示Slice-EDF-VD的平均實(shí)時(shí)可行性比EDF高41.7%、比EDF-VD的高24.2%;在圖5中,設(shè)置低關(guān)鍵性任務(wù)γi=1,高關(guān)鍵性任務(wù)γi=5,實(shí)驗(yàn)結(jié)果顯示Slice-EDF-VD的平均實(shí)時(shí)可行性比EDF高57.7%、比EDF-VD的高43.2%,由圖可知,由于重執(zhí)行的次數(shù)更多引起更多的負(fù)載,所以高關(guān)鍵性任務(wù)γi=5的實(shí)時(shí)可行性比γi=3低;
步驟5:為了對(duì)本發(fā)明提出的Slice-EDF-VD算法進(jìn)行全面的評(píng)估,在任務(wù)集大小變化時(shí)對(duì)Slice-EDF-VD與EDF、EDF-VD三種算法的CPU占用時(shí)間作比較,實(shí)驗(yàn)包括10個(gè)任務(wù)集,任務(wù)數(shù)分別是20、40、60、80、100、120、140、160、180、200,因?yàn)椴捎弥讣y識(shí)別技術(shù),Slice-EDF-VD的CPU時(shí)間比EDF、EDF-VD高;在圖6中,設(shè)置低關(guān)鍵性任務(wù)γi=1,高關(guān)鍵性任務(wù)γi=3,實(shí)驗(yàn)結(jié)果顯示EDF、EDF-VD、Slice-EDF-VD三個(gè)算法的CPU占用時(shí)間分別是0.5106s,0.6588s,1.6647s;在圖7中,設(shè)置低關(guān)鍵性任務(wù)γi=1,高關(guān)鍵性任務(wù)γi=5,實(shí)驗(yàn)結(jié)果顯示EDF、EDF-VD、Slice-EDF-VD三個(gè)算法的CPU占用時(shí)間分別是0.6374s,0.8031s,2.0619s,盡管Slice-EDF-VD的CPU占用時(shí)間高于EDF、EDF-VD,但仍然在可以接受的范圍;
步驟6:為了研究Slice-EDF-VD的可擴(kuò)展性,設(shè)置當(dāng)任務(wù)集的數(shù)量不斷變化時(shí),研究Slice-EDF-VD、EDF、EDF-VD的可靠性和實(shí)時(shí)可行性,實(shí)驗(yàn)包括10個(gè)任務(wù)集,任務(wù)數(shù)分別是20、40、60、80、100、120、140、160、180、200,實(shí)驗(yàn)結(jié)果如圖8、圖8、圖10所示,盡管任務(wù)集大小發(fā)生變化,但Slice-EDF-VD算法的可靠性和實(shí)時(shí)可行性都比EDF、EDF-VD高。
本發(fā)明提出一種在單處理器平臺(tái)上容忍瞬時(shí)錯(cuò)誤的對(duì)混合關(guān)鍵任務(wù)的調(diào)度方法,本發(fā)明提出的Slice-EDF-VD算法采用重執(zhí)行技術(shù)來(lái)提高可靠性,利用PT和UIT技術(shù)來(lái)提高調(diào)度可行性,通過(guò)把Slice-EDF-VD算法與EDF、EDF-VD算法作比較,實(shí)驗(yàn)結(jié)果顯示Slice-EDF-VD優(yōu)于EDF、EDF-VD算法,可靠性提升15.8%,可行性提升94.4%,實(shí)驗(yàn)表明,相對(duì)于兩種具有代表性的算法,本發(fā)明的Slice-EDF-VD算法對(duì)于系統(tǒng)有更好的優(yōu)化。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進(jìn)和變形,這些改進(jìn)和變形也應(yīng)視為本發(fā)明的保護(hù)范圍。