一種多核實(shí)時(shí)容錯(cuò)系統(tǒng)中獲取準(zhǔn)確的最晚截止時(shí)間的方法
【專(zhuān)利摘要】本發(fā)明提出了一種多核實(shí)時(shí)容錯(cuò)系統(tǒng)中獲取準(zhǔn)確的最晚截止時(shí)間的方法,包括如下步驟:根據(jù)給定的任務(wù)調(diào)度,在保持原有數(shù)據(jù)依賴(lài)的基礎(chǔ)上,為調(diào)度在同一核上的相鄰任務(wù)增加調(diào)度順序依賴(lài);增加兩個(gè)執(zhí)行時(shí)間為0的虛擬任務(wù)節(jié)點(diǎn),使得在任務(wù)調(diào)度中,其中一個(gè)虛擬節(jié)點(diǎn)先于所有任務(wù)執(zhí)行,另外一個(gè)后于所有任務(wù)執(zhí)行;假設(shè)在任務(wù)執(zhí)行過(guò)程中最多出現(xiàn)X個(gè)軟錯(cuò)誤,在原有調(diào)度的基礎(chǔ)上通過(guò)出錯(cuò)任務(wù)在同一核上立即重新執(zhí)行來(lái)實(shí)現(xiàn)容錯(cuò),并確定任務(wù)集合的關(guān)鍵任務(wù),獲取任務(wù)集合的準(zhǔn)確的最晚截止時(shí)間。若任務(wù)集合中包含N個(gè)任務(wù),并且在執(zhí)行過(guò)程中最多出現(xiàn)X個(gè)軟錯(cuò)誤,本發(fā)明能夠在O(n^2)時(shí)間內(nèi)確定任務(wù)集合的準(zhǔn)確的最晚截止時(shí)間,保證容錯(cuò),高效快速。
【專(zhuān)利說(shuō)明】一種多核實(shí)時(shí)容錯(cuò)系統(tǒng)中獲取準(zhǔn)確的最晚截止時(shí)間的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及領(lǐng)域,具體涉及一種多核實(shí)時(shí)容錯(cuò)系統(tǒng)中獲取準(zhǔn)確的最晚截止時(shí)間的方法。
【背景技術(shù)】
[0002]多核實(shí)時(shí)系統(tǒng)的實(shí)時(shí)應(yīng)用通常由很多任務(wù)組成,并且要求這些任務(wù)需要在截止時(shí)間前完成。例如在一個(gè)多核實(shí)時(shí)系統(tǒng)中,任務(wù)之間具有依賴(lài)關(guān)系,一般用有向無(wú)環(huán)圖來(lái)表示這些任務(wù)。
[0003]圖1 (a)是一個(gè)任務(wù)調(diào)度圖,表示出了圖中任務(wù)的調(diào)度執(zhí)行順序,即任務(wù)被分配到哪一個(gè)核上執(zhí)行,以及開(kāi)始執(zhí)行時(shí)間。任務(wù)在某一個(gè)核上執(zhí)行過(guò)程中有可能發(fā)生軟錯(cuò)誤,為了保證得到正確的結(jié)果,必須提供容錯(cuò)。一種簡(jiǎn)單并且常見(jiàn)的方法是讓該任務(wù)在同一核上立即重新執(zhí)行,如圖1 (b)所示,圖中陰影是發(fā)生錯(cuò)誤的任務(wù)。
[0004]現(xiàn)有方法中,多核實(shí)時(shí)容錯(cuò)系統(tǒng)中實(shí)時(shí)應(yīng)用截止時(shí)間的計(jì)算方法是讓每個(gè)核上具有最長(zhǎng)執(zhí)行時(shí)間的任務(wù)發(fā)生所有錯(cuò)誤以獲得每個(gè)核上任務(wù)的最晚截止時(shí)間,如果任務(wù)之間沒(méi)有依賴(lài)關(guān)系,這種計(jì)算方法是準(zhǔn)確的。例如圖1(b)中,分別每個(gè)核上具有最長(zhǎng)執(zhí)行時(shí)間的任務(wù)發(fā)生兩個(gè)錯(cuò)誤,任務(wù)T4發(fā)生兩次錯(cuò)誤的截止時(shí)間是19個(gè)時(shí)間單位,任務(wù)T2發(fā)生兩次錯(cuò)誤的截止時(shí)間是15個(gè)時(shí)間單位,任務(wù)T3發(fā)生兩次錯(cuò)誤的截止時(shí)間是14個(gè)時(shí)間單位,因此該多核實(shí)時(shí)系統(tǒng)應(yīng)用運(yùn)行的最優(yōu)截止時(shí)間是19個(gè)時(shí)間單位。但是,如果任務(wù)之間有依賴(lài)關(guān)系,這種方法就不準(zhǔn)確。例如,圖1 (a)中6個(gè)任務(wù)分配在三個(gè)核上。圖中的箭頭表示任務(wù)之間的數(shù)據(jù)依賴(lài)關(guān)系,在同一核上和不同核上的任務(wù)之間的通信延遲分別被假定為O和I。圖1 (c)顯示的情況下,T4發(fā)生兩次故障,截止時(shí)間是19個(gè)時(shí)間單位。而圖1 (d)中,處理器PO執(zhí)行的任務(wù)T2發(fā)生兩次故障,截止時(shí)間是20個(gè)時(shí)間單位。很明顯,圖1 (d)中所示情況更糟糕。因此,現(xiàn)有截止時(shí)間的計(jì)算`方法可能低估了真實(shí)情況。
[0005]另外,由于每個(gè)任務(wù)發(fā)生錯(cuò)誤的個(gè)數(shù)不確定,現(xiàn)有方法是窮舉所有可能的情況,進(jìn)行比較,然后選擇截止時(shí)間。這種方法的缺點(diǎn)是:當(dāng)確定每個(gè)任務(wù)發(fā)生多少個(gè)錯(cuò)誤之后,獲得任務(wù)集合的最晚截止時(shí)間的時(shí)間復(fù)雜度為0(N2),但是由于需要考慮所有情況:
/iV + Z-P (Λ.' + Α, —I)!
N個(gè)任務(wù)發(fā)生X個(gè)錯(cuò)誤共有 y -V η種情況,因此總的時(shí)間復(fù)雜度為
、J.(iV 上).,非常浪費(fèi)時(shí)間。
【發(fā)明內(nèi)容】
[0006]為了克服上述現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的是提供一種多核實(shí)時(shí)容錯(cuò)系統(tǒng)中獲取準(zhǔn)確的最晚截止時(shí)間的方法,本發(fā)明能夠高效快速地獲得任務(wù)集合的最晚截止時(shí)間。[0007]為了實(shí)現(xiàn)本發(fā)明的上述目的,本發(fā)明提供了一種多核實(shí)時(shí)容錯(cuò)系統(tǒng)中獲取準(zhǔn)確的最晚截止時(shí)間的方法,其包括如下步驟:
[0008]SI,根據(jù)多核系統(tǒng)的任務(wù)調(diào)度,在保持原有數(shù)據(jù)依賴(lài)的基礎(chǔ)上,為調(diào)度在同一核上執(zhí)行的相鄰任務(wù)增加調(diào)度順序依賴(lài),并建立新的有向無(wú)環(huán)圖;
[0009]S2,在新的有向無(wú)環(huán)圖的基礎(chǔ)上,增加兩個(gè)虛擬任務(wù)節(jié)點(diǎn),所述虛擬任務(wù)的執(zhí)行時(shí)間為0,在以該有向無(wú)環(huán)圖為模型的任務(wù)調(diào)度中,其中一個(gè)虛擬任務(wù)節(jié)點(diǎn)最先執(zhí)行,另外一個(gè)虛擬任務(wù)節(jié)點(diǎn)最后執(zhí)行,因其執(zhí)行時(shí)間為0,不增加最晚截止時(shí)間;
[0010]S3,假設(shè)在任務(wù)執(zhí)行過(guò)程中最多出現(xiàn)X個(gè)軟錯(cuò)誤,在原有調(diào)度的基礎(chǔ)上通過(guò)出錯(cuò)任務(wù)在同一核上的立即重新執(zhí)行來(lái)實(shí)現(xiàn)容錯(cuò),保證任務(wù)集合的正確執(zhí)行,并確定任務(wù)集合的關(guān)鍵任務(wù),獲取任務(wù)集合準(zhǔn)確的最晚截止時(shí)間;
[0011]S4,衡量任務(wù)集合的最晚截止時(shí)間是否滿(mǎn)足當(dāng)前多核實(shí)時(shí)容錯(cuò)系統(tǒng)中的工作需求,如果滿(mǎn)足,則退出,如果不滿(mǎn)足,則調(diào)整調(diào)度策略,返回步驟Si。
[0012]在本發(fā)明的一種優(yōu)選實(shí)施方式中,所述步驟SI具體包括如下步驟:
[0013]S11,獲取任務(wù)集合中任務(wù)的個(gè)數(shù)N,以及任務(wù)集合執(zhí)行過(guò)程中可能發(fā)生的最大軟錯(cuò)誤的個(gè)數(shù)X
[0014]S12,用有向無(wú)環(huán)圖表示任務(wù)間的數(shù)據(jù)依賴(lài);
[0015]S13,根據(jù)給定 的任務(wù)調(diào)度,如果兩個(gè)任務(wù)在同一核上被調(diào)度執(zhí)行并且調(diào)度順序相鄰,則增加這兩個(gè)任務(wù)間的調(diào)度順序依賴(lài),并在原來(lái)的有向無(wú)環(huán)圖的基礎(chǔ)上增加表示調(diào)度順序依賴(lài)的邊,得到新的有向無(wú)環(huán)圖;
[0016]S14,獲取每個(gè)任務(wù)節(jié)點(diǎn)的執(zhí)行時(shí)間存入任務(wù)節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)中,獲取邊的權(quán)重存入數(shù)組中。
[0017]在本發(fā)明的另一種優(yōu)選實(shí)施方式中,所述步驟S2具體步驟為:
[0018]在新的有向無(wú)環(huán)圖基礎(chǔ)上增加兩個(gè)節(jié)點(diǎn),源節(jié)點(diǎn)和匯聚節(jié)點(diǎn),并設(shè)這兩個(gè)節(jié)點(diǎn)的執(zhí)行時(shí)間為O ;對(duì)于所有沒(méi)有父節(jié)點(diǎn)的任務(wù)節(jié)點(diǎn),增加一條從源節(jié)點(diǎn)到該節(jié)點(diǎn)的邊;對(duì)于所有沒(méi)有子節(jié)點(diǎn)的任務(wù)節(jié)點(diǎn),增加一條從該節(jié)點(diǎn)到匯聚節(jié)點(diǎn)的邊。同時(shí)將與源節(jié)點(diǎn)和匯聚節(jié)點(diǎn)相連的邊的權(quán)重設(shè)為O。
[0019]在本發(fā)明的一種優(yōu)選實(shí)施方式中,所述步驟S3具體包括如下步驟:
[0020]S31,初始化每個(gè)任務(wù)的最早截止時(shí)間為所有任務(wù)都不發(fā)生錯(cuò)誤時(shí)該任務(wù)的完成時(shí)間;初始化每個(gè)任務(wù)的最晚截止時(shí)間為O ;
[0021]S32,以一個(gè)任務(wù)節(jié)點(diǎn)I作為輸入,該任務(wù)可以是任何一個(gè)節(jié)點(diǎn);如果該任務(wù)節(jié)點(diǎn)I的最晚截止時(shí)間大于0,說(shuō)明該任務(wù)節(jié)點(diǎn)已經(jīng)被計(jì)算過(guò),直接返回其最晚截止時(shí)間及其關(guān)鍵任務(wù);如果該任務(wù)節(jié)點(diǎn)的父節(jié)點(diǎn)集合包含源節(jié)點(diǎn),則該任務(wù)的關(guān)鍵任務(wù)是它本身,通過(guò)讓該任務(wù)發(fā)生所有錯(cuò)誤來(lái)獲得該任務(wù)的最晚截止時(shí)間;否則進(jìn)入下一步驟;
[0022]S33,遞歸的遍歷求解該任務(wù)節(jié)點(diǎn)I的所有父節(jié)點(diǎn)的最晚截止時(shí)間以及對(duì)應(yīng)的關(guān)鍵任務(wù);
[0023]S34,假設(shè)任務(wù)I共有m個(gè)父節(jié)點(diǎn),且它們的最晚截止時(shí)間分別為F(I)1J(I)2,…,F(xiàn)(I)m。分別在F(I) ^F(I)2,…,F(xiàn)(I)m的基礎(chǔ)上計(jì)算任務(wù)I的完成時(shí)間,得到I1, I2,…,Im。同時(shí)計(jì)算其他任務(wù)都不發(fā)生錯(cuò)誤而只有任務(wù)I發(fā)生所有X個(gè)軟錯(cuò)誤的完成時(shí)間Itl并與
I1,I2,…,^進(jìn)行比較,選取最大值作為任務(wù)I的最晚截止時(shí)間,同時(shí)確定該任務(wù)節(jié)點(diǎn)I的關(guān)鍵任務(wù)是其本身還是S33中所求得的關(guān)鍵任務(wù)。
[0024]本發(fā)明的有益效果是:
[0025]本發(fā)明能夠快速衡量任務(wù)集合的最優(yōu)截止時(shí)間是否滿(mǎn)足當(dāng)前多核實(shí)時(shí)系統(tǒng)中的工作需求。
[0026]本發(fā)明獲取的最晚截止時(shí)間是準(zhǔn)確的。假如系統(tǒng)設(shè)定的截止時(shí)間比這個(gè)時(shí)間小,則有大于O的概率導(dǎo)致在截止時(shí)間內(nèi)不能容錯(cuò)所有X個(gè)錯(cuò)誤;假如系統(tǒng)設(shè)定的截止時(shí)間比這個(gè)時(shí)間大,則會(huì)造成時(shí)間上的浪費(fèi)。
[0027]本發(fā)明能夠在0(η~2)時(shí)間內(nèi)確定任務(wù)集合準(zhǔn)確的最晚截止時(shí)間,相比于現(xiàn)有技術(shù)高效快速。
[0028]本發(fā)明的附加方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本發(fā)明的實(shí)踐了解到。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0029]本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從結(jié)合下面附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中:
[0030]圖1為現(xiàn)有技術(shù)中的任務(wù)調(diào)度圖,其中,圖1 (a)為所有任務(wù)都沒(méi)有發(fā)生錯(cuò)誤時(shí)的任務(wù)調(diào)度圖;圖1 (b)每個(gè)核上具有最長(zhǎng)執(zhí)行時(shí)間的任務(wù)分別發(fā)生兩次錯(cuò)誤時(shí)的容錯(cuò)任務(wù)調(diào)度圖,任務(wù)之間沒(méi)有數(shù)據(jù)依賴(lài)關(guān)系;圖1 (C)為任務(wù)集合中T4 (具有最長(zhǎng)的執(zhí)行時(shí)間)發(fā)生兩次錯(cuò)誤時(shí)的容錯(cuò)任務(wù)調(diào)度圖;圖1 (d)為任務(wù)集合中T2發(fā)生兩次錯(cuò)誤時(shí)的容錯(cuò)任務(wù)調(diào)度圖;
[0031]圖2為本發(fā)明一種優(yōu)選實(shí)施方式中對(duì)步驟SI和S2解釋的任務(wù)調(diào)度圖及其有向無(wú)環(huán)圖,其中,圖2 (a)表示任務(wù)集合中原有數(shù)據(jù)依賴(lài)的有向無(wú)環(huán)圖;圖2 (b)為任務(wù)調(diào)度圖;圖2 (C)為本發(fā)明在圖2 (a)的基礎(chǔ)上為調(diào)度在同一核上的相鄰任務(wù)增加調(diào)度順序依賴(lài)后的有向無(wú)環(huán)圖;圖2 Cd)為本發(fā)明在圖2 (c)的基礎(chǔ)上增加源節(jié)點(diǎn)Tsr和匯聚節(jié)點(diǎn)Tsk后的有向無(wú)環(huán)圖;
[0032]圖3為本發(fā)明另一種優(yōu)選實(shí)施方式中對(duì)步驟S3解釋的有向無(wú)環(huán)圖。
【具體實(shí)施方式】
[0033]下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類(lèi)似的標(biāo)號(hào)表示相同或類(lèi)似的元件或具有相同或類(lèi)似功能的元件。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對(duì)本發(fā)明的限制。
[0034]本發(fā)明提供了一種多核實(shí)時(shí)容錯(cuò)系統(tǒng)中獲取準(zhǔn)確的最晚截止時(shí)間的方法,其包括如下步驟:
[0035]第一步:用有向無(wú)環(huán)圖表示任務(wù)間的數(shù)據(jù)依賴(lài),如圖2 (a)所示;
[0036]圖2 (b)中表示出了任務(wù)調(diào)度圖,任務(wù)T1、T2、T3、T4、T5、T6的執(zhí)行時(shí)間分別是4、10、3、4、5、3個(gè)時(shí)間單位。
[0037]根據(jù)圖2 (b)所示的多核系統(tǒng)的任務(wù)調(diào)度,在保持原有數(shù)據(jù)依賴(lài)的基礎(chǔ)上,為調(diào)度在同一核上的相鄰任務(wù)增加調(diào)度順序依賴(lài),建立新的有向無(wú)環(huán)圖,如圖2 (c)中虛線(xiàn)所示,增加核P2上任務(wù)T2與任務(wù)T5之間的調(diào)度順序依賴(lài),增加核P3上任務(wù)T3與任務(wù)T6之間的調(diào)度順序依賴(lài),建立新的有向無(wú)環(huán)圖。在本實(shí)施方式中,具體可以采用如下步驟:
[0038]A,根據(jù)每個(gè)任務(wù)的開(kāi)始執(zhí)行時(shí)間對(duì)任務(wù)進(jìn)行排序組成任務(wù)鏈表,從鏈表頭部進(jìn)行掃描,即從該核上最先被調(diào)度執(zhí)行的任務(wù)進(jìn)行掃描,設(shè)索引記為i,令i=l;
[0039]B,令j=i+l,若j>N則停止,否則若任務(wù)Ti和任務(wù)Tj被分配到同一個(gè)核上,則在原有數(shù)據(jù)依賴(lài)的基礎(chǔ)上增加一條從節(jié)點(diǎn)Ti到節(jié)點(diǎn)Tj表示調(diào)度順序的邊,令i=i+l,返回步驟B0
[0040]最后,獲取每個(gè)任務(wù)節(jié)點(diǎn)Ti的執(zhí)行時(shí)間CTi存入任務(wù)節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)中,獲取邊的權(quán)重存入數(shù)組中。
[0041]第二步,在新的有向無(wú)環(huán)圖基礎(chǔ)上增加兩個(gè)節(jié)點(diǎn),源節(jié)點(diǎn)Tsr和匯聚節(jié)點(diǎn)Tsr,如圖2(d)所示,并設(shè)這兩個(gè)節(jié)點(diǎn)的執(zhí)行時(shí)間為O ;對(duì)于所有沒(méi)有父節(jié)點(diǎn)的任務(wù)節(jié)點(diǎn),增加一條從源節(jié)點(diǎn)到該節(jié)點(diǎn)的邊,本實(shí)施方式中,即增加從源節(jié)點(diǎn)Tsr到任務(wù)節(jié)點(diǎn)T1、T2和Τ3的邊;對(duì)于所有沒(méi)有子節(jié)點(diǎn)的任務(wù)節(jié)點(diǎn),增加一條從該節(jié)點(diǎn)到匯聚節(jié)點(diǎn)的邊,在本實(shí)施方式中,即增加從任務(wù)節(jié)點(diǎn)Τ5到匯聚節(jié)點(diǎn)Tsk的邊。同時(shí)設(shè)定本步驟增加的所有邊的權(quán)重為O。
[0042]第三步,確定任務(wù)集合的關(guān)鍵任務(wù),獲取最優(yōu)截止時(shí)間。具體包括如下步驟:
[0043]S31,初始化每個(gè)任務(wù)Ti的最早截止時(shí)間BCFT (Ti)為所有任務(wù)都不發(fā)生錯(cuò)誤時(shí)該任務(wù)的完成時(shí)間;初始化每個(gè)任務(wù)Ti的最晚截止時(shí)間WCFT (Ti)為O ;初始化每個(gè)任務(wù)Ti的關(guān)鍵任務(wù)為CT(Ti)=Tnull ;初始化可能的最大軟錯(cuò)誤個(gè)數(shù)X。在本實(shí)施方式中,i=l,2,...,N0
[0044]S32,以一個(gè)任務(wù)節(jié)點(diǎn)Ti作為輸入,該任務(wù)可以是任何一個(gè)節(jié)點(diǎn);如果該任務(wù)節(jié)點(diǎn)Ti的最晚截止時(shí)間大于0,說(shuō)明該任務(wù)節(jié)點(diǎn)已經(jīng)被計(jì)算過(guò),直接返回其最晚截止時(shí)間及其關(guān)鍵任務(wù);如果該任務(wù)節(jié)點(diǎn)的父節(jié)點(diǎn)集合包含源節(jié)點(diǎn),則該任務(wù)的關(guān)鍵任務(wù)是它本身,通過(guò)讓該任務(wù)發(fā)生所有錯(cuò)誤可以得到該任務(wù)的最晚截止時(shí)間;否則進(jìn)入下一步驟S33 ;
`[0045]S33,遞歸的遍歷求解該任務(wù)節(jié)點(diǎn)Ti的所有父節(jié)點(diǎn)的最晚截止時(shí)間以及對(duì)應(yīng)的關(guān)鍵任務(wù);
[0046]S34,假設(shè)任務(wù)Ti共有m個(gè)父節(jié)點(diǎn),且它們的最優(yōu)截止時(shí)間分別為F(Ti)11F(Ti)2, -,F(Ti)m0 分別在 F(Ti) i,F(xiàn)(Ti)2,…,F(xiàn)(Ti)m 的基礎(chǔ)上計(jì)算任務(wù) Ti 的完成時(shí)間,得到I1, I2,…,Im。同時(shí)計(jì)算任務(wù)Ti發(fā)生所有X個(gè)錯(cuò)誤的完成時(shí)間Itl并與I1, I2,…,Im進(jìn)行比較,選取最大值作為任務(wù)Ti的最晚截止時(shí)間,同時(shí)確定該任務(wù)節(jié)點(diǎn)Ti的關(guān)鍵任務(wù)是其本身還是S33中所求得的關(guān)鍵任務(wù)。
[0047]在本實(shí)施方式中,如圖3所示,初始化每個(gè)任務(wù)的最早截止時(shí)間為所有任務(wù)都不發(fā)生錯(cuò)誤時(shí)該任務(wù)的完成時(shí)間,即 BCFT (T1) =CT1、BCFT (T2) =CT2、BCFT (T3) =max {CT1+CT3+ff (T^T3)
,CT2+CT3+W(T2+T3)},其中CTi為任務(wù)Ti的執(zhí)行時(shí)間;初始化每個(gè)任務(wù)的最晚截止時(shí)間為0,即WCFT (T1) =WCFT (T2) =WCFT (T3) =0 ;初始化每個(gè)任務(wù)的關(guān)鍵任務(wù) CT (T1) =CT (T2) =CT (T3) =Tnull ;初始化可能的最大軟錯(cuò)誤個(gè)數(shù)X。
[0048]令任務(wù)節(jié)點(diǎn)Ti作為輸入,該任務(wù)可以是任何一個(gè)節(jié)點(diǎn),在本實(shí)施方式中,優(yōu)選令1=1 ;如果該任務(wù)節(jié)點(diǎn)Ti的最晚截止時(shí)間大于O,說(shuō)明該任務(wù)節(jié)點(diǎn)已經(jīng)被計(jì)算過(guò),直接返回其最晚截止時(shí)間及其關(guān)鍵任務(wù);如果該任務(wù)節(jié)點(diǎn)的父節(jié)點(diǎn)集合包含源節(jié)點(diǎn),則該任務(wù)的關(guān)鍵任務(wù)是它本身,例如對(duì)于任務(wù)節(jié)點(diǎn)T1和T2,通過(guò)讓該任務(wù)發(fā)生所有錯(cuò)誤可以得到該任務(wù)的最晚截止時(shí)間,即[0049]WCFT (T1) =CT1+X*CT1 CT (T1) =T1
[0050]WCFT (T2) =CT2+X*CT2 CT (T2) =T2
[0051]如果該任務(wù)節(jié)點(diǎn)的父節(jié)點(diǎn)集合不包含源節(jié)點(diǎn),則進(jìn)入下一步驟S33 ;
[0052]S33,輸入任務(wù)節(jié)點(diǎn)Ti,遞歸遍歷求解該任務(wù)節(jié)點(diǎn)所有的父節(jié)點(diǎn)的最優(yōu)截止時(shí)間,取父節(jié)點(diǎn)中具有最大最晚截止時(shí)間的父節(jié)點(diǎn)和對(duì)應(yīng)的關(guān)鍵任務(wù),并記錄該父節(jié)點(diǎn)到該任務(wù)節(jié)點(diǎn)的邊的權(quán)重。例如,對(duì)于任務(wù)節(jié)點(diǎn)T3,遞歸遍歷求解該任務(wù)節(jié)點(diǎn)的父節(jié)點(diǎn)T1和T2的最晚截止時(shí)間,分別加上任務(wù)節(jié)點(diǎn)T1和T2到T3的邊的權(quán)重WCT1, T3)、W(T2,T3)以及T3的執(zhí)行時(shí)間Ct3,分別為:
[0053]WCFT (T1) +W (T1, T3) +Ct3
[0054]WCFT (T2) +W (T2, T3) +Ct3
[0055]在本實(shí)施方式中,權(quán)重表不數(shù)據(jù)依賴(lài)的傳輸時(shí)延,例如^(T1, T3)是指任務(wù)T1執(zhí)行結(jié)束至任務(wù)T3開(kāi)始執(zhí)行的時(shí)延。
[0056]讓該任務(wù)T3發(fā)生所有錯(cuò)誤所得到的完成時(shí)間BCFT (T3) +X*CT3與以上得到的WCFT (T1) +W (T1, T3) +CT3、WCFT (T2) +W (T2, T3) +Ct3 相比較,最大的則為任務(wù) T3 的最晚截止時(shí)間,同時(shí)能夠確定該任務(wù)的關(guān)鍵任務(wù)。例如,如果max {WCFT (T1) +W (T1, T3) +CT3, WCFT(T2) +W (T2, T3) +CT3, BCFT (T3) +X*CT3} =WCFT (T1) +W (T1, T3),則任務(wù) T3 的最晚截止時(shí)間為WCFT (T1) +KT1, T3) +Ct3 ,任務(wù) T3 的關(guān)鍵任務(wù)是 CT (T3) =T1。
[0057]在確定任務(wù)集合的最晚截止時(shí)間后,本發(fā)明還包括如下步驟:衡量任務(wù)集合的最晚截止時(shí)間是否滿(mǎn)足多核實(shí)時(shí)容錯(cuò)系統(tǒng)的工作需求,如果滿(mǎn)足,則退出,如果不滿(mǎn)足,則調(diào)整對(duì)該任務(wù)集合的調(diào)度策略,返回第一步。具體任務(wù)調(diào)度的調(diào)整方式可根據(jù)實(shí)際情況確定,不是本發(fā)明的保護(hù)重點(diǎn),此處不做過(guò)多贅述。
[0058]需要說(shuō)明的是,在本實(shí)施方式中,對(duì)于不同的多核系統(tǒng),能夠發(fā)生的最大軟錯(cuò)誤數(shù)量X可以不同,具體的數(shù)值可以根據(jù)實(shí)驗(yàn)測(cè)量獲得。
[0059]在本說(shuō)明書(shū)的描述中,參考術(shù)語(yǔ)“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少一個(gè)實(shí)施例或示例中。在本說(shuō)明書(shū)中,對(duì)上述術(shù)語(yǔ)的示意性表述不一定指的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。
[0060]盡管已經(jīng)示出和描述了本發(fā)明的實(shí)施例,本領(lǐng)域的普通技術(shù)人員可以理解:在不脫離本發(fā)明的原理和宗旨的情況下可以對(duì)這些實(shí)施例進(jìn)行多種變化、修改、替換和變型,本發(fā)明的范圍由權(quán)利要求及其等同物限定。
【權(quán)利要求】
1.一種多核實(shí)時(shí)容錯(cuò)系統(tǒng)中獲取準(zhǔn)確的最晚截止時(shí)間的方法,其特征在于,包括如下步驟: Si,根據(jù)多核系統(tǒng)的任務(wù)調(diào)度,在保持原有數(shù)據(jù)依賴(lài)的基礎(chǔ)上,為在同一核上執(zhí)行的相鄰任務(wù)增加調(diào)度順序依賴(lài),建立新的有向無(wú)環(huán)圖; S2,在新的有向無(wú)環(huán)圖的基礎(chǔ)上,增加兩個(gè)虛擬任務(wù)節(jié)點(diǎn),所述虛擬任務(wù)的執(zhí)行時(shí)間為O,在以該有向無(wú)環(huán)圖為模型的任務(wù)調(diào)度中,其中一個(gè)虛擬任務(wù)節(jié)點(diǎn)最先執(zhí)行,另外一個(gè)虛擬任務(wù)節(jié)點(diǎn)最后執(zhí)行; S3,假設(shè)在任務(wù)執(zhí)行過(guò)程中最多出現(xiàn)X個(gè)軟錯(cuò)誤,在原有調(diào)度的基礎(chǔ)上通過(guò)出錯(cuò)任務(wù)在同一核上的立即重新執(zhí)行來(lái)實(shí)現(xiàn)容錯(cuò),保證任務(wù)集合的正確執(zhí)行,并確定任務(wù)集合的關(guān)鍵任務(wù),獲取任務(wù)集合的準(zhǔn)確的最晚截止時(shí)間; S4,衡量任務(wù)集合的準(zhǔn)確的最晚截止時(shí)間是否滿(mǎn)足當(dāng)前多核實(shí)時(shí)容錯(cuò)系統(tǒng)中的工作時(shí)限需求,如果滿(mǎn)足,則退出,如果不滿(mǎn)足,則調(diào)整調(diào)度策略,返回步驟SI。
2.如權(quán)利要求1所述的多核實(shí)時(shí)容錯(cuò)系統(tǒng)中獲取準(zhǔn)確的最晚截止時(shí)間的方法,其特征在于,所述步驟SI具體包括如下步驟: S11,獲取任務(wù)集合中任務(wù)的個(gè)數(shù)N,以及任務(wù)集合執(zhí)行過(guò)程中可能發(fā)生的最大軟錯(cuò)誤的個(gè)數(shù)X ; S12,用有向無(wú)環(huán)圖表示任務(wù)間的數(shù)據(jù)依賴(lài); S13,根據(jù)給定的任務(wù)調(diào)度,如果兩個(gè)任務(wù)在同一核上被調(diào)度執(zhí)行并且調(diào)度順序相鄰,貝U增加這兩個(gè)任務(wù)間的調(diào)度順序依賴(lài),并在原來(lái)的有向無(wú)環(huán)圖的基礎(chǔ)上增加表示調(diào)度順序依賴(lài)的邊,得到新的有向無(wú)環(huán)圖; S14,獲取每個(gè)任務(wù)節(jié)點(diǎn)的執(zhí)行時(shí)間存入任務(wù)節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)中,獲取邊的權(quán)重存入數(shù)組中。
3.如權(quán)利要求1所述的多核實(shí)時(shí)容錯(cuò)系統(tǒng)中獲取準(zhǔn)確的最晚截止時(shí)間的方法,其特征在于,所述步驟S2具體步驟為: 在新的有向無(wú)環(huán)圖基礎(chǔ)上增加兩個(gè)節(jié)點(diǎn),源節(jié)點(diǎn)和匯聚節(jié)點(diǎn),并設(shè)這兩個(gè)節(jié)點(diǎn)的執(zhí)行時(shí)間為O ;對(duì)于所有沒(méi)有父節(jié)點(diǎn)的任務(wù)節(jié)點(diǎn),增加一條從源節(jié)點(diǎn)到該節(jié)點(diǎn)的邊;對(duì)于所有沒(méi)有子節(jié)點(diǎn)的任務(wù)節(jié)點(diǎn),增加一條從該節(jié)點(diǎn)到匯聚節(jié)點(diǎn)的邊,同時(shí)將所有與源節(jié)點(diǎn)和匯聚節(jié)點(diǎn)相連的邊的權(quán)重設(shè)為O。
4.如權(quán)利要求1所述的多核實(shí)時(shí)容錯(cuò)系統(tǒng)中獲取準(zhǔn)確的最晚截止時(shí)間的方法,其特征在于,所述步驟S3具體包括如下步驟: S31,初始化每個(gè)任務(wù)的最早截止時(shí)間為所有任務(wù)都不發(fā)生錯(cuò)誤時(shí)該任務(wù)的完成時(shí)間;初始化每個(gè)任務(wù)的最晚截止時(shí)間為O ; S32,以一個(gè)任務(wù)節(jié)點(diǎn)I作為輸入,該任務(wù)可以是任何一個(gè)節(jié)點(diǎn);如果該任務(wù)節(jié)點(diǎn)I的最晚截止時(shí)間大于O,說(shuō)明該任務(wù)節(jié)點(diǎn)已經(jīng)被計(jì)算過(guò),直接返回其最晚截止時(shí)間及其關(guān)鍵任務(wù);如果該任務(wù)節(jié)點(diǎn)的父節(jié)點(diǎn)集合包含源節(jié)點(diǎn),則該任務(wù)的關(guān)鍵任務(wù)是它本身,通過(guò)讓該任務(wù)發(fā)生所有錯(cuò)誤來(lái)獲得該任務(wù)的最晚截止時(shí)間;否則進(jìn)入下一步驟; S33、遞歸的遍歷求解該任務(wù)節(jié)點(diǎn)I的所有父節(jié)點(diǎn)的最晚截止時(shí)間以及對(duì)應(yīng)的關(guān)鍵任務(wù); S34、假設(shè)任務(wù)I共有m個(gè)父節(jié)點(diǎn),且它們的最晚截止時(shí)間分別為F⑴i,F(xiàn)⑴2,…,F(xiàn)⑴m,分別在F(I) p F(I)2,…,F(xiàn)(I)m的基礎(chǔ)上計(jì)算任務(wù)I的完成時(shí)間,分別為I1, I2,…,Im,同時(shí)計(jì)算其他任務(wù)都不發(fā)生錯(cuò)誤而只有任務(wù)I發(fā)生所有X個(gè)軟錯(cuò)誤的完成時(shí)間Itl,將Itl與I1,I2,…,1?>進(jìn)行比較,選取最大的作為任務(wù)I的最晚截止時(shí)間,同時(shí)確定該任務(wù)節(jié)點(diǎn)I的關(guān)鍵任務(wù)是其本身還 是S33中所求得的關(guān)鍵任務(wù)。
【文檔編號(hào)】G06F11/07GK103699455SQ201310739053
【公開(kāi)日】2014年4月2日 申請(qǐng)日期:2013年12月27日 優(yōu)先權(quán)日:2013年12月27日
【發(fā)明者】沙行勉, 吳剴劼, 崔曉通 申請(qǐng)人:重慶大學(xué)