基于線(xiàn)性鏈表的實(shí)時(shí)任務(wù)可調(diào)度性測(cè)試直接模擬方法
【專(zhuān)利說(shuō)明】
[0001]
技術(shù)領(lǐng)域: 本發(fā)明涉及一種基于線(xiàn)性鏈表的實(shí)時(shí)任務(wù)可調(diào)度性測(cè)試直接模擬方法。
[0002]
【背景技術(shù)】: 在實(shí)時(shí)系統(tǒng)設(shè)計(jì)和應(yīng)用過(guò)程中,對(duì)于給定的η個(gè)周期性或者不定時(shí)發(fā)生的實(shí)時(shí)任務(wù), 在真正調(diào)度和執(zhí)行之前判定這組實(shí)時(shí)任務(wù)是否可調(diào)度,即每個(gè)任務(wù)被釋放之后是否都能在 其相對(duì)最后期限內(nèi)執(zhí)行完畢,這是一個(gè)十分重要的問(wèn)題,對(duì)于保證實(shí)時(shí)系統(tǒng)安全運(yùn)行具有 極為重要的意義。
[0003] 經(jīng)典的優(yōu)先搶占調(diào)度模型,簡(jiǎn)稱(chēng)為CP模型,其中CP即classic preemptive,CP 模型的調(diào)度方式為:每當(dāng)?shù)蛢?yōu)先級(jí)任務(wù)在運(yùn)行過(guò)程中有高優(yōu)先級(jí)任務(wù)到來(lái)時(shí),低優(yōu)先級(jí)任 務(wù)將被剝奪執(zhí)行權(quán)而高優(yōu)先級(jí)任務(wù)開(kāi)始執(zhí)行,當(dāng)高優(yōu)先級(jí)任務(wù)執(zhí)行完畢且沒(méi)有其它高優(yōu) 先級(jí)任務(wù)等待執(zhí)行時(shí),該低優(yōu)先級(jí)任務(wù)從被剝奪的位置處繼續(xù)執(zhí)行;事務(wù)處理方式的優(yōu)先 搶占調(diào)度模型,簡(jiǎn)稱(chēng)為T(mén)P模型,其中TP即transactional preemptive,例如,TP模型有 基于優(yōu)先級(jí)的功能反應(yīng)式編程模型,簡(jiǎn)稱(chēng)為P-FRP模型,其中P-FRP即joriori /rac reac Ke 或者中止并重新開(kāi)始模型,簡(jiǎn)稱(chēng)為AR模型,其中 AR即abort-and-restart;或者軟件事務(wù)存儲(chǔ)器模型,簡(jiǎn)稱(chēng)為STM模型,STM即software transactional memory,STM模型包括渴望沖突檢測(cè)策略和懶惰沖突檢測(cè)策略,渴望沖突檢 測(cè)策略簡(jiǎn)稱(chēng)為ECD策略,其中ECD即eager conflict detection,懶惰沖突檢測(cè)策略簡(jiǎn)稱(chēng) 為L(zhǎng)CD策略,其中LCD即lazy conflict detection;TP模型的調(diào)度方式為:每當(dāng)?shù)蛢?yōu)先級(jí) 任務(wù)在運(yùn)行過(guò)程中有高優(yōu)先級(jí)任務(wù)到來(lái)時(shí),低優(yōu)先級(jí)任務(wù)將被剝奪執(zhí)行權(quán)而高優(yōu)先級(jí)任務(wù) 開(kāi)始執(zhí)行,該低優(yōu)先級(jí)任務(wù)已執(zhí)行的結(jié)果都被廢棄,當(dāng)高優(yōu)先級(jí)任務(wù)執(zhí)行完畢且沒(méi)有其它 高優(yōu)先級(jí)任務(wù)等待執(zhí)行時(shí),該低優(yōu)先級(jí)任務(wù)從其最開(kāi)始位置重新執(zhí)行;符號(hào)串r- s表示將 變量s的值賦值給變量r;min(a,b)即取a和b中的最小值,max(a,b)即取a和b中的最 大值;mod(a,b)即a模b后的余數(shù);lcm(a,b)即a和b的最小公倍數(shù);任務(wù)的一次釋放稱(chēng) 為該任務(wù)的一個(gè)任務(wù)實(shí)例(job)或者調(diào)用(invoke)或者任務(wù)實(shí)例(instance);【和】之間、 K和3之間、『和』之間、[和]、「和」之間分別表示一個(gè)語(yǔ)句體;任務(wù)實(shí)例執(zhí)行中止包括執(zhí)行 被尚優(yōu)先級(jí)任務(wù)中斷和執(zhí)行完成。
[0004] 給定調(diào)度模型為CP模型或者TP模型;在一組η個(gè)實(shí)時(shí)任務(wù)的可調(diào)度性(或可行 性)區(qū)間測(cè)試(或檢驗(yàn)或檢查或檢測(cè))這組任務(wù)的可調(diào)度性。如果該組任務(wù)是可調(diào)度的,那 么在一個(gè)時(shí)間點(diǎn)S之后,每隔時(shí)間長(zhǎng)度LCM n,這組任務(wù)的調(diào)度情況就出現(xiàn)重復(fù),即后續(xù)調(diào)度 過(guò)程實(shí)際上是一段在長(zhǎng)度為L(zhǎng)CMn的時(shí)間區(qū)間[S,S+LCMJ內(nèi)的調(diào)度的重復(fù)。
[0005] 系統(tǒng)啟動(dòng)時(shí)刻為時(shí)間0,實(shí)際測(cè)試可調(diào)度性時(shí),由于這組任務(wù)在區(qū)間[0,S)內(nèi)的調(diào) 度包含初次到達(dá)情形而往往不具有重復(fù)性,因此,傳統(tǒng)上將[0, S+LCMJ作為實(shí)際的可調(diào)度 性測(cè)試區(qū)間。這段可調(diào)度性測(cè)試區(qū)間長(zhǎng)度越小,實(shí)際測(cè)試中效率越高。從普遍情況來(lái)看,可 調(diào)度性測(cè)試區(qū)間長(zhǎng)度一般不小于LCM n。此前沒(méi)有采用線(xiàn)性鏈表記錄調(diào)度過(guò)程對(duì)任務(wù)集的可 調(diào)度性進(jìn)行測(cè)試的方法。
[0006]
【發(fā)明內(nèi)容】
: 本發(fā)明的目的是提供一種基于線(xiàn)性鏈表的實(shí)時(shí)任務(wù)可調(diào)度性測(cè)試直接模擬方法,通過(guò) 使用鏈表結(jié)點(diǎn)表示任務(wù)(或事件)的調(diào)度執(zhí)行階段,采用線(xiàn)性鏈表記錄測(cè)試的調(diào)度過(guò)程的方 法來(lái)達(dá)到確定實(shí)時(shí)任務(wù)(或事件)可調(diào)度性測(cè)試的目的;適用于實(shí)時(shí)任務(wù)或事件優(yōu)先級(jí)固定 的情形。
[0007] 上述的目的通過(guò)以下的技術(shù)方案實(shí)現(xiàn): 一種基于線(xiàn)性鏈表的實(shí)時(shí)任務(wù)可調(diào)度性測(cè)試直接模擬方法,該方法包括:根據(jù)給定的 調(diào)度模型,采用一個(gè)線(xiàn)性鏈表記錄調(diào)度模擬和測(cè)試過(guò)程,對(duì)任務(wù)T1, τ2,...,τη,在給定的 時(shí)間起點(diǎn)SimSP到截止時(shí)間點(diǎn)SimEP內(nèi)按優(yōu)先級(jí)從高到低順序模擬每個(gè)任務(wù)τ ^勺所有任 務(wù)實(shí)例的調(diào)度執(zhí)行。
[0008] 所述的基于線(xiàn)性鏈表的實(shí)時(shí)任務(wù)可調(diào)度性測(cè)試直接模擬方法,所述的根據(jù)給定的 調(diào)度模型,采用一個(gè)線(xiàn)性鏈表記錄調(diào)度模擬和測(cè)試過(guò)程,對(duì)任務(wù)T1, τ2,...,τη,在給定的 時(shí)間起點(diǎn)SimSP到截止時(shí)間點(diǎn)SimEP內(nèi)按優(yōu)先級(jí)從高到低順序模擬每個(gè)任務(wù)τ ^勺所有任 務(wù)實(shí)例的調(diào)度執(zhí)行是指,采用一個(gè)線(xiàn)性鏈表記錄任務(wù)的調(diào)度模擬執(zhí)行和測(cè)試過(guò)程,任務(wù)實(shí) 例開(kāi)始執(zhí)行時(shí)間點(diǎn)記錄到鏈表結(jié)點(diǎn)的start字段,任務(wù)實(shí)例執(zhí)行中止時(shí)間點(diǎn)記錄到鏈表結(jié) 點(diǎn)的end字段,每個(gè)鏈表結(jié)點(diǎn)表示從該結(jié)點(diǎn)start字段值給出的時(shí)間點(diǎn)到該結(jié)點(diǎn)end字段 值給出的時(shí)間點(diǎn)之間一個(gè)或多個(gè)任務(wù)實(shí)例的連續(xù)調(diào)度執(zhí)行;MAX intCT- SimEP;給標(biāo)志變量 flag賦一個(gè)初值;對(duì)每個(gè)i,I g i gn,LRT1^ C 1;【在時(shí)間范圍SimSP到SimEP模擬任務(wù) τ i的從第1個(gè)到第個(gè)任務(wù)實(shí)例的執(zhí)行,即建立 鏈表結(jié)點(diǎn),對(duì)每個(gè)j,I j 〖第j個(gè)鏈表結(jié)點(diǎn)的Start字段賦值為 任務(wù)實(shí)例Tli j的釋放時(shí)間r U,第j個(gè)鏈表結(jié)點(diǎn)的end字段賦值為r I j+Ci;〗;然后對(duì)任務(wù) τ 2, τ 3, . . .,τ n,在時(shí)間范圍SimSP到SimEP內(nèi)依優(yōu)先級(jí)從高到低順序模擬每個(gè)任務(wù)τ i 的從第1個(gè)到第個(gè)任務(wù)實(shí)例的執(zhí)行,即,K對(duì)每個(gè)i,2蠓i蠓n,每個(gè)j, j從小到大依次調(diào)用執(zhí)行模擬單個(gè)任務(wù)實(shí)例函數(shù)Fl對(duì)任務(wù) T1的第j個(gè)任務(wù)實(shí)例τ u進(jìn)行模擬;〗;】;鏈表最后一個(gè)結(jié)點(diǎn)的end字段賦值為min(該 結(jié)點(diǎn)的end字段值,SimEP);給出任務(wù)集是可調(diào)度的信息。
[0009] 所述的基于線(xiàn)性鏈表的實(shí)時(shí)任務(wù)可調(diào)度性測(cè)試直接模擬方法,所述的執(zhí)行模擬單 個(gè)任務(wù)實(shí)例函數(shù)Fl對(duì)任務(wù)τ i的第j個(gè)任務(wù)實(shí)例τ u進(jìn)行模擬是指,【根據(jù)r u在鏈表中 通過(guò)與結(jié)點(diǎn)中的start字段值及end字段值比較查找并從當(dāng)前作業(yè)j在鏈表中的相對(duì)位置 開(kāi)始,按CP模型調(diào)度時(shí)將運(yùn)行時(shí)間匕對(duì)應(yīng)為1個(gè)或連續(xù)多個(gè)任務(wù)τ ^勺空閑區(qū)間鏈表結(jié)點(diǎn), 這些結(jié)點(diǎn)表示的區(qū)間長(zhǎng)度之和等于C1;按TP模型調(diào)度時(shí)將運(yùn)行時(shí)間(:i對(duì)應(yīng)為任務(wù)τ i的一 個(gè)允許區(qū)間結(jié)點(diǎn)PINode,結(jié)點(diǎn)PINode表示的區(qū)間長(zhǎng)度等于C i,且在該任務(wù)實(shí)例釋放時(shí)間到 結(jié)點(diǎn)PINode之間的全部任務(wù)τ i的極大空閑區(qū)間都合并到其相鄰區(qū)間;按時(shí)間次序依次鏈 入鏈表中的相應(yīng)位置,鏈入鏈表的同時(shí)合并調(diào)度執(zhí)行區(qū)間時(shí)間點(diǎn)邊界重合的鏈表結(jié)點(diǎn),在 模擬過(guò)程中無(wú)法在鏈表上完成運(yùn)行時(shí)間C 1的對(duì)應(yīng)時(shí)修改標(biāo)志變量flag值不同于其初值, 在模擬完成后記錄任務(wù)τ i當(dāng)前的最大響應(yīng)時(shí)間LRT 1;如果標(biāo)志變量flag值不同于其初值 或者LRT1M1,則返回不可調(diào)度信息并中止對(duì)該任務(wù)集的可調(diào)度性測(cè)試;】。
[0010] 所述的基于線(xiàn)性鏈表的實(shí)時(shí)任務(wù)可調(diào)度性測(cè)試直接模擬方法,所述的TP模型的 任務(wù)^的允許區(qū)間是指:任務(wù)τ啲一個(gè)空閑區(qū)間EI是指,對(duì)于任務(wù)τ τ2,...,τη1的 調(diào)度結(jié)果中一個(gè)沒(méi)有被占用的連續(xù)的時(shí)間范圍區(qū)間[ti,t2),t2>ti,在該區(qū)間內(nèi)沒(méi)有任務(wù)集 { τ τ 2, . . .,τ n J中的任務(wù)釋放,并且在時(shí)刻t i及之前所有已釋放的任務(wù)集{ τ τ 2,.. .,τη J中的任務(wù)都已執(zhí)行完畢; 任務(wù)^的一個(gè)空閑區(qū)間[tl,t2)稱(chēng)為一個(gè)任務(wù)τ 極大空閑區(qū)間maxEI是指,時(shí)刻 L為任務(wù)τ ^勺釋放時(shí)間或者任務(wù)集{τ τ2,...,τη1}中的任務(wù)結(jié)束時(shí)間,并且從時(shí)刻t2 開(kāi)始有任務(wù)集{ τ i,τ 2, . . .,τ n J中的任務(wù)釋放或者七2等于Φ _(1 1^XLC