基于關(guān)鍵度的混合關(guān)鍵任務(wù)調(diào)度方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于嵌入式系統(tǒng)多核技術(shù)領(lǐng)域,具體涉及一種基于關(guān)鍵度的混合關(guān)鍵任務(wù) 調(diào)度方法。
【背景技術(shù)】
[0002] 在單處理器環(huán)境下的嵌入式實(shí)時(shí)系統(tǒng)中,如果關(guān)鍵任務(wù)不能可靠、及時(shí)地執(zhí)行,將 會(huì)導(dǎo)致嚴(yán)重的后果。目前,隨著多核的出現(xiàn),嵌入式實(shí)時(shí)系統(tǒng)設(shè)計(jì)者為了降低系統(tǒng)功耗、減 少資源的浪費(fèi),將更多的安全關(guān)鍵任務(wù)集成在同一個(gè)平臺(tái)上,這種系統(tǒng)稱之為混合關(guān)鍵系 統(tǒng)(Mixed-Critical ity System)。在該系統(tǒng)中的安全關(guān)鍵任務(wù)稱之為混合關(guān)鍵任務(wù) (Mixed-Criticality Tasks)。這種集成方式造成了不同關(guān)鍵級(jí)別任務(wù)之間的干擾,容易引 起關(guān)鍵任務(wù)執(zhí)行失效。例如,汽車的一個(gè)ABS(Anti-lock Brake System)剎車系統(tǒng)任務(wù)和一 個(gè)導(dǎo)航系統(tǒng)任務(wù)在同一個(gè)多核平臺(tái)上運(yùn)行,如果后者不及時(shí)釋放處理器,那么將會(huì)引起剎 車失靈。這種系統(tǒng)在不同時(shí)刻,任務(wù)將處于不同的安全關(guān)鍵級(jí)別。要想讓各項(xiàng)任務(wù)都能夠根 據(jù)自己的安全關(guān)鍵級(jí)別合理、順利地得到執(zhí)行,就必須對(duì)各安全關(guān)鍵級(jí)別下的所有任務(wù)進(jìn) 行統(tǒng)一的調(diào)度。因此,混合關(guān)鍵任務(wù)的調(diào)度(Mixed Criticality Schedulable,MCS)問(wèn)題已 經(jīng)成為業(yè)界非常關(guān)注的焦點(diǎn)問(wèn)題。如美國(guó)空軍研究實(shí)驗(yàn)室(US Air Force Research Laboratory)正在積極推出的"混合關(guān)鍵體系結(jié)構(gòu)需求10六1?(1116(1-CriticalityArchitecture Requirements)"項(xiàng)目,并成立相關(guān)組織研究如何安全構(gòu)建這些 混合關(guān)鍵系統(tǒng)。這些組織包括空軍研究實(shí)驗(yàn)室,國(guó)家科學(xué)基金委員會(huì),國(guó)內(nèi)安全組織以及國(guó) 內(nèi)航空空間宇航局等。目標(biāo)是為了使安全關(guān)鍵的嵌入式系統(tǒng)的認(rèn)證過(guò)程流程化、標(biāo)準(zhǔn)化。這 帶動(dòng)了工業(yè)界、學(xué)院和標(biāo)準(zhǔn)化組織來(lái)尋找更多先進(jìn)的和有效的認(rèn)證方法。目前國(guó)內(nèi)外對(duì)混 合關(guān)鍵任務(wù)調(diào)度算法大致分為三大類:1)基于優(yōu)先級(jí)的任務(wù)調(diào)度方法。該方法系統(tǒng)利用率 不高,且并不能防止關(guān)鍵級(jí)別反轉(zhuǎn)現(xiàn)象;2)基于資源任務(wù)劃分的調(diào)度算法。該算法實(shí)現(xiàn)起來(lái) 比較繁瑣,且在滿足任務(wù)時(shí)限不丟失的情況下,對(duì)核處理速度要求很高;3)基于slack-aware 的調(diào)度算法, 該算法要求對(duì)每一個(gè)任務(wù)的slack 時(shí)間進(jìn)行多次推算 ,計(jì)算過(guò)程很繁瑣, 時(shí)間復(fù)雜度高且zero-slack方法只能調(diào)度一小部分的任務(wù)集。
【發(fā)明內(nèi)容】
[0003] 有鑒于此,本發(fā)明的主要目的在于提供一種基于關(guān)鍵度的混合關(guān)鍵任務(wù)調(diào)度方 法。
[0004] 為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0005] 本發(fā)明實(shí)施例提供一種基于關(guān)鍵度的混合關(guān)鍵任務(wù)調(diào)度方法,該方法為:根據(jù)每 個(gè)安全關(guān)鍵任務(wù)的不同關(guān)鍵級(jí)別以及相應(yīng)的實(shí)時(shí)參數(shù)確定對(duì)應(yīng)的關(guān)鍵度,再根據(jù)不同安全 關(guān)鍵任務(wù)的關(guān)鍵度確定每個(gè)安全關(guān)鍵任務(wù)的優(yōu)先順序,最后依次對(duì)優(yōu)先順序中的安全關(guān)鍵 任務(wù)進(jìn)行調(diào)度。
[0006] 上述方案中,所述根據(jù)每個(gè)安全關(guān)鍵任務(wù)的不同關(guān)鍵級(jí)別以及相應(yīng)的實(shí)時(shí)參數(shù)確 定對(duì)應(yīng)的關(guān)鍵度,具體為:設(shè)有η個(gè)不同關(guān)鍵級(jí)別的安全關(guān)鍵任務(wù),每個(gè)安全關(guān)鍵任務(wù)上都 有四個(gè)參數(shù)分別為發(fā)布時(shí)間Ai、時(shí)限D(zhuǎn)i、關(guān)鍵級(jí)別Xi和不同關(guān)鍵級(jí)別下的最壞執(zhí)行時(shí)間Q (K);
[0007] 首先,根據(jù)值確定K級(jí)別下的η個(gè)安全關(guān)鍵任務(wù)的相對(duì)關(guān)鍵違
[0008] 其次,根據(jù)當(dāng)前所處的關(guān)鍵級(jí)別k確定每個(gè)安全關(guān)鍵任務(wù)的關(guān)鍵額度?', = f ; k
[0009] 再次,根據(jù)所述安全關(guān)鍵任務(wù)的時(shí)限04角定每個(gè)安全關(guān)鍵任務(wù)的時(shí)限緊急度
[0010] 最后,根據(jù)確定相對(duì)關(guān)鍵度、關(guān)鍵額度、時(shí)限緊急度確定K個(gè)關(guān)鍵級(jí)別下的η個(gè)任務(wù) 的關(guān)鍵度0
[0011] 上述方案中,所述根據(jù)不同安全關(guān)鍵任務(wù)的關(guān)鍵度確定每個(gè)安全關(guān)鍵任務(wù)的優(yōu)先 順序,具體為:將安全關(guān)鍵任務(wù)按照發(fā)布時(shí)間仏的順序進(jìn)行排序放入到任務(wù)隊(duì)列中,從任務(wù) 列表中依次選擇六 1最小的任務(wù)放入到調(diào)度隊(duì)列中,如果就緒隊(duì)列為空,則直接放入該安全 關(guān)鍵任務(wù);如果就緒隊(duì)列不空,則根據(jù)不同的關(guān)鍵級(jí)別,按照CDBP算法比較該安全關(guān)鍵任務(wù) 與調(diào)度隊(duì)列中其他任務(wù)的優(yōu)先關(guān)系,按照優(yōu)先次序放入到就緒隊(duì)列中并將該任務(wù)從任務(wù)列 表中刪除,最后按照所述就緒隊(duì)列中的次序按依次進(jìn)行調(diào)度。
[0012] 上述方案中,依次對(duì)優(yōu)先順序中的安全關(guān)鍵任務(wù)進(jìn)行調(diào)度,具體為:
[0013] 首先,比較兩個(gè)安全關(guān)鍵任務(wù)的關(guān)鍵度#大小,關(guān)鍵度大的任務(wù)優(yōu)先級(jí)高;
[0014] 其次,如果兩個(gè)安全關(guān)鍵任務(wù)的關(guān)鍵度相同,比較兩個(gè)安全關(guān)鍵任務(wù)的關(guān)鍵級(jí)別, 關(guān)鍵級(jí)別尚的任務(wù)優(yōu)先級(jí)尚;
[0015] 最后,如果兩個(gè)安全關(guān)鍵任務(wù)的關(guān)鍵級(jí)別一致,則比較兩個(gè)安全關(guān)鍵任務(wù)的時(shí)限, 時(shí)限小的優(yōu)先級(jí)尚。
[0016] 與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果:
[0017] 本發(fā)明使得當(dāng)前混合關(guān)鍵任務(wù)的調(diào)度方法更加簡(jiǎn)便,減少了不必要的任務(wù)切換開(kāi) 銷和關(guān)鍵級(jí)別反轉(zhuǎn)的現(xiàn)象。
【附圖說(shuō)明】
[0018] 圖1為本發(fā)明實(shí)施例提供一種基于關(guān)鍵度的混合關(guān)鍵任務(wù)調(diào)度方法的流程圖;
[0019] 圖2為本發(fā)明實(shí)施例中⑶ΒΡ算法優(yōu)先級(jí)分配流程圖;
[0020] 圖3為本發(fā)明實(shí)施例中混合關(guān)鍵任務(wù)和一般實(shí)時(shí)任務(wù)調(diào)度示意圖;
[0021 ]圖4為本發(fā)明實(shí)施例中低關(guān)鍵級(jí)別調(diào)度示意圖;
[0022]圖5為本發(fā)明實(shí)施例中尚關(guān)鍵級(jí)別調(diào)度不意圖;
[0023]圖6為本發(fā)明實(shí)施例中基于⑶ΒΡ的任務(wù)調(diào)度表。
【具體實(shí)施方式】
[0024] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì) 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。
[0025] 本發(fā)明針對(duì)安全關(guān)鍵不同級(jí)別的任務(wù)提出一種基于關(guān)鍵度的(Criticality Degree Based Priority,CDBP)混合關(guān)鍵任務(wù)調(diào)度方法,該方法全面考慮了任務(wù)的關(guān)鍵級(jí) 別和緊急程度,且調(diào)度表的創(chuàng)建不會(huì)因?yàn)檎也坏阶畹蛢?yōu)先級(jí)任務(wù)而終止。所述混合關(guān)鍵任 務(wù)具有四個(gè)重要屬性--發(fā)布時(shí)間、時(shí)限、關(guān)鍵級(jí)別和最壞執(zhí)行時(shí)間。其中最壞執(zhí)行時(shí)間是 一個(gè)多維向量,向量值與任務(wù)的關(guān)鍵級(jí)別相關(guān),各元素表示任務(wù)在各個(gè)級(jí)別下的最壞執(zhí)行 時(shí)間。如在K個(gè)關(guān)鍵級(jí)別的安全關(guān)鍵系統(tǒng)中,關(guān)鍵級(jí)別最低為1,最高為K,安全關(guān)鍵任務(wù)表示 為Ji,則有:
[0026] Ji=(Xi,Ai,Di,Ci)
[0027] 其中,Χ,表示任務(wù)土的關(guān)鍵級(jí)別;Ai表示任務(wù)的發(fā)布時(shí)間此表示任務(wù)的時(shí)限;(:康 示任務(wù)的最壞執(zhí)行時(shí)間,是一個(gè)向量:
[0028] Ci=(Ci(l),Ci(2),...,Ci(K))
[0029] Cdl)表示任務(wù)心在關(guān)鍵級(jí)別為1時(shí)的最壞執(zhí)行時(shí)間,CK2)表示任務(wù)心在關(guān)鍵級(jí)別 為2時(shí)的最壞執(zhí)行時(shí)間,CJK)表示任務(wù)上在關(guān)鍵級(jí)別為K時(shí)的最壞執(zhí)行時(shí)間。若K>X^,有 Ci(K)=Ci(Xi)〇
[0030] 定義1相對(duì)關(guān)鍵度Pi-一是指在具有η個(gè)任務(wù)的系統(tǒng)I中,任務(wù)心相對(duì)于其他任務(wù) 的關(guān)鍵級(jí)別的重要程度。用
表示,其中XdPXj是各任務(wù)在系統(tǒng)某個(gè)統(tǒng)一時(shí)刻的 關(guān)鍵級(jí)別。
[0031] 定義2關(guān)鍵額度31--是指在具有K個(gè)關(guān)鍵級(jí)別的系統(tǒng)I中,Ji當(dāng)前所處級(jí)別在當(dāng) 前系統(tǒng)的關(guān)鍵級(jí)別k下所具有的關(guān)鍵份數(shù)。用4 來(lái)表示,其中Xl是任務(wù)的當(dāng)前關(guān)鍵級(jí) 別。
[0032]定義3時(shí)限緊急度cU-一是指任務(wù)時(shí)限的先后對(duì)任務(wù)的緊急程度的影響,用 4 來(lái)表示。在同等情況下,時(shí)限更早到來(lái)的任務(wù)應(yīng)該具有更高的優(yōu)先級(jí)