采用線性鏈表記錄實(shí)時(shí)任務(wù)調(diào)度過程的方法
【專利說明】
[0001]
技術(shù)領(lǐng)域: 本發(fā)明涉及一種采用線性鏈表記錄實(shí)時(shí)任務(wù)調(diào)度過程的方法。
[0002]
【背景技術(shù)】: 在實(shí)時(shí)系統(tǒng)設(shè)計(jì)和應(yīng)用過程中,對(duì)于給定的n個(gè)周期性或者不定時(shí)發(fā)生的實(shí)時(shí)任務(wù), 經(jīng)典的優(yōu)先搶占調(diào)度模型,簡(jiǎn)稱為CP模型,其中CP即classicpreemptive,CP模型的調(diào)度 方式為:每當(dāng)?shù)蛢?yōu)先級(jí)任務(wù)在運(yùn)行過程中有高優(yōu)先級(jí)任務(wù)到來時(shí),低優(yōu)先級(jí)任務(wù)將被剝奪 執(zhí)行權(quán)而高優(yōu)先級(jí)任務(wù)開始執(zhí)行,當(dāng)高優(yōu)先級(jí)任務(wù)執(zhí)行完畢且沒有其它高優(yōu)先級(jí)任務(wù)等待 執(zhí)行時(shí),該低優(yōu)先級(jí)任務(wù)從被剝奪的位置處繼續(xù)執(zhí)行;事務(wù)處理方式的優(yōu)先搶占調(diào)度模型, 簡(jiǎn)稱為TP模型,其中TP即transactionalpreemptive,例如,TP模型有基于優(yōu)先級(jí)的功能 反應(yīng)式編程模型,簡(jiǎn)稱為P-FRP模型,其中P-FRP即jOriarireactive 避?或者中止并重新開始模型,簡(jiǎn)稱為AR模型,其中AR即abort-and-restart; 或者軟件事務(wù)存儲(chǔ)器模型,簡(jiǎn)稱為STM模型,STM即softwaretransactionalmemory,STM 模型包括渴望沖突檢測(cè)策略和懶惰沖突檢測(cè)策略,渴望沖突檢測(cè)策略簡(jiǎn)稱為ECD策略,其 中ECD即eagerconflictdetection,懶惰沖突檢測(cè)策略簡(jiǎn)稱為L(zhǎng)CD策略,其中LCD即lazy conflictdetection;TP模型的調(diào)度方式為:每當(dāng)?shù)蛢?yōu)先級(jí)任務(wù)在運(yùn)行過程中有高優(yōu)先級(jí) 任務(wù)到來時(shí),低優(yōu)先級(jí)任務(wù)將被剝奪執(zhí)行權(quán)而高優(yōu)先級(jí)任務(wù)開始執(zhí)行,該低優(yōu)先級(jí)任務(wù)已 執(zhí)行的結(jié)果都被廢棄,當(dāng)高優(yōu)先級(jí)任務(wù)執(zhí)行完畢且沒有其它高優(yōu)先級(jí)任務(wù)等待執(zhí)行時(shí),該 低優(yōu)先級(jí)任務(wù)從其最開始位置重新執(zhí)行;符號(hào)串r-s表示將變量s的值賦值給變量r; lcm(a,b)即a和b的最小公倍數(shù);任務(wù)的一次釋放稱為該任務(wù)的一個(gè)任務(wù)實(shí)例(job)或者 調(diào)用(invoke)或者任務(wù)實(shí)例(instance);任務(wù)實(shí)例執(zhí)行中止包括執(zhí)行被高優(yōu)先級(jí)任務(wù)中 斷和執(zhí)彳丁完成。
[0003] 給定調(diào)度模型為CP模型或者TP模型;系統(tǒng)啟動(dòng)時(shí)刻為時(shí)間0,在一組n個(gè)實(shí)時(shí)任 務(wù)的可調(diào)度性(或可行性)區(qū)間測(cè)試(或檢驗(yàn)或檢查或檢測(cè))這組任務(wù)的可調(diào)度性。如果該 組任務(wù)是可調(diào)度的,那么在調(diào)度穩(wěn)定點(diǎn)S之后,每隔時(shí)間長(zhǎng)度LCMn,這組任務(wù)的調(diào)度情況就 出現(xiàn)重復(fù),即后續(xù)調(diào)度過程實(shí)際上是一段在長(zhǎng)度為L(zhǎng)CMn的時(shí)間區(qū)間[S,S+LCMJ內(nèi)的調(diào)度的 重復(fù);實(shí)際測(cè)試可調(diào)度性時(shí),當(dāng)已知穩(wěn)定點(diǎn)S時(shí)在區(qū)間[S,S+LCMn)內(nèi)模擬該任務(wù)集的調(diào)度, 當(dāng)穩(wěn)定點(diǎn)S未知時(shí)在區(qū)間[0,S+LCMn)內(nèi)模擬該任務(wù)集的調(diào)度。從普遍情況來看,可調(diào)度性 測(cè)試區(qū)間長(zhǎng)度不小于LCMn。傳統(tǒng)方法采用從調(diào)度時(shí)間起點(diǎn)開始,按時(shí)間步長(zhǎng)增量為1的方 式直至截止時(shí)間點(diǎn)完成調(diào)度。此前沒有采用線性鏈表記錄調(diào)度過程對(duì)任務(wù)集的可調(diào)度性進(jìn) 行測(cè)試的方法。
[0004]
【發(fā)明內(nèi)容】
: 本發(fā)明的目的是提供一種采用線性鏈表記錄實(shí)時(shí)任務(wù)調(diào)度過程的方法,通過使用鏈表 結(jié)點(diǎn)表示任務(wù)(或事件)的調(diào)度執(zhí)行階段,達(dá)到采用線性鏈表記錄模擬的調(diào)度過程的目的; 適用于實(shí)時(shí)任務(wù)或事件優(yōu)先級(jí)固定的情形。
[0005] 上述的目的通過以下的技術(shù)方案實(shí)現(xiàn): 一種采用線性鏈表記錄實(shí)時(shí)任務(wù)調(diào)度過程的方法,該方法包括:根據(jù)給定的調(diào)度模 型,按任務(wù)實(shí)例當(dāng)前優(yōu)先級(jí)從高到低順序,采用一個(gè)線性鏈表記錄從給定的時(shí)間起點(diǎn)到截 止時(shí)間點(diǎn)內(nèi)所有任務(wù)實(shí)例的調(diào)度執(zhí)行,任務(wù)實(shí)例開始執(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í)行。
[0006] 有益效果: 1.本發(fā)明的方法不同于已有的實(shí)時(shí)任務(wù)(或事件)可調(diào)度性測(cè)試方法,本發(fā)明的方法通 過用鏈表結(jié)點(diǎn)表示任務(wù)(或事件)的調(diào)度執(zhí)行階段,采用線性鏈表記錄測(cè)試的模擬和調(diào)度過 程,已有的實(shí)時(shí)任務(wù)(或事件)可調(diào)度性測(cè)試方法沒有采用線性鏈表記錄實(shí)時(shí)任務(wù)(或事件) 模擬和調(diào)度過程。
[0007] .本發(fā)明的方法采用線性鏈表記錄調(diào)度過程,使本發(fā)明的方法的時(shí)間復(fù)雜度是測(cè) 試區(qū)間內(nèi)總的任務(wù)實(shí)例數(shù)量的多項(xiàng)式時(shí)間,因此,與已有的實(shí)時(shí)任務(wù)(或事件)可調(diào)度性測(cè) 試方法的指數(shù)時(shí)間相比,從普遍情況來看,提高了效率;特別是在前n_l個(gè)較高優(yōu)先級(jí)任務(wù) 的最小到達(dá)周期的最小公倍數(shù)LCMn:遠(yuǎn)大于任務(wù)數(shù)時(shí),能夠顯著提高效率。例如,在實(shí)施例 2和3中所用鏈表結(jié)點(diǎn)數(shù)量最多為5,即調(diào)度過程中掃描鏈表長(zhǎng)度最大為5,比傳統(tǒng)方法模擬 步數(shù)為區(qū)間長(zhǎng)度LCMnLCMn=24要小得多。
[0008] 本發(fā)明所述的對(duì)于n彡1個(gè)實(shí)時(shí)任務(wù)或者事件的任務(wù)集{T17T2, . ..,TJ,這 些任務(wù)是周期性的或者不定時(shí)發(fā)生的,需要確定該任務(wù)集的可調(diào)度性,每個(gè)任務(wù)Tplin, 被賦予一個(gè)唯一的固定優(yōu)先級(jí)i,l代表最高優(yōu)先級(jí),n代表最低優(yōu)先級(jí);每個(gè)任務(wù)T1具 有以下參數(shù):最大計(jì)算時(shí)間或者最大運(yùn)行時(shí)間c/,拷貝時(shí)間Ocrjy,裝入時(shí)間ocrstOT6, Ci-C廣y+C/+C廣st°'對(duì)于經(jīng)典的優(yōu)先搶占調(diào)度CP模型,C廣y=C廣st°ra=0,即(;一C每 個(gè)任務(wù)的相鄰兩個(gè)任務(wù)實(shí)例或者調(diào)用或者作業(yè)的最短到達(dá)時(shí)間為T1;每個(gè)任務(wù)實(shí)例執(zhí)行完 成的相對(duì)最后期限為D1;0〈Cpin(D1,T1);系統(tǒng)啟動(dòng)時(shí)間t為時(shí)刻0;每個(gè)任務(wù)的第一個(gè)任 務(wù)實(shí)例相對(duì)于時(shí)間時(shí)刻〇的釋放偏移為〇 ,,即任務(wù)T1的第一個(gè)任務(wù)實(shí)例從時(shí)間0開始經(jīng) 過時(shí)間O1被釋放,以后至少每隔時(shí)間長(zhǎng)度T1被釋放,即任務(wù)Ti的第j個(gè)任務(wù)實(shí)例的釋 放時(shí)間不早于為OfU-DXT1,這里j是大于等于1的整數(shù);對(duì)每個(gè)k,2kn,LCMT1, LCMk-lcm(Tk,LCMkJ;i,j,k,n都取正整數(shù)。
[0009]【附圖說明】: 附圖1是本發(fā)明在時(shí)間區(qū)間[11,11+24)之間的可調(diào)度性測(cè)試圖。
[0010] 附圖2是本發(fā)明在時(shí)間區(qū)間[16,16+24)之間的可調(diào)度性測(cè)試圖。
[0011]
【具體實(shí)施方式】: 實(shí)施例1: 一種采用線性鏈表記錄實(shí)時(shí)任務(wù)調(diào)度過程的方法,該方法包括:根據(jù)給定的調(diào)度模 型,按任務(wù)實(shí)例當(dāng)前優(yōu)先級(jí)從高到低順序,采用一個(gè)線性鏈表記錄從給定的時(shí)間起點(diǎn)到截 止時(shí)間點(diǎn)內(nèi)所有任務(wù)實(shí)例的調(diào)度執(zhí)行,任務(wù)實(shí)例開始執(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í)行。
[0012] 實(shí)施例2: 根據(jù)實(shí)施例1所述的采用線性鏈表記錄實(shí)時(shí)任務(wù)調(diào)度過程的方法,按CP模型進(jìn)行調(diào) 度。本實(shí)施例中每個(gè)任務(wù)的優(yōu)先級(jí)固定,任務(wù)實(shí)例的優(yōu)先級(jí)即相應(yīng)任務(wù)的優(yōu)先級(jí)。
[0013] 給定由4個(gè)周期性任務(wù)(或事件)構(gòu)成的任務(wù)集合{Ti,T2,T3,T4},系統(tǒng)啟動(dòng) 時(shí)刻為0,給定穩(wěn)定點(diǎn)S=Il和調(diào)整后的釋放偏移及有關(guān)參數(shù)如表1所示。LCM LCM3=24,LCM4=24。按給定的CP模型,采用線性鏈表記錄調(diào)度過程,按任務(wù)優(yōu)先級(jí)從高到 低,任務(wù)T1在時(shí)間區(qū)間[11,11+6)中調(diào)度結(jié)果鏈表中有一個(gè)結(jié)點(diǎn),其start字段值為11, end字段值為13;任務(wù)TT2在時(shí)間區(qū)間[11,11+24)中調(diào)度結(jié)果鏈表中有5個(gè)結(jié)點(diǎn),從第 一個(gè)結(jié)點(diǎn)開始,每個(gè)結(jié)點(diǎn)start字段值和end字段值依次分別為11,15;17,19;20,21;23, 25;28, 32;任務(wù)T t2, T3在時(shí)間區(qū)間[11,11+24)中調(diào)度結(jié)果鏈表中有5個(gè)結(jié)點(diǎn),從第 一個(gè)結(jié)點(diǎn)開始,每個(gè)結(jié)點(diǎn)start字段值和end字段值依次分別為11,15;16,19;20,22;23, 26;28, 33;任務(wù)T t2, t3, T4在時(shí)間區(qū)間[11,11+24)中調(diào)度結(jié)果鏈表中有1個(gè)結(jié)點(diǎn),其 start字段值為11,end字段值為34。
[0014] 表1 給定穩(wěn)定點(diǎn)S=Il和經(jīng)過調(diào)整釋放偏移之后的任務(wù)參數(shù)
[0015] 實(shí)施例3: 根據(jù)實(shí)施例1或2所述的采用線性鏈表記錄實(shí)時(shí)任務(wù)調(diào)度過程的方法,本實(shí)施例給定 的是按TP模型進(jìn)行調(diào)度。本實(shí)施例中每個(gè)任務(wù)優(yōu)先級(jí)固定,任務(wù)實(shí)例的優(yōu)先級(jí)即相應(yīng)任務(wù) 的優(yōu)先級(jí)。
[0016] 給定由4個(gè)周期性任務(wù)(或事件)構(gòu)成的任務(wù)集合{Ti,T2,T3,T4},系統(tǒng)啟動(dòng)時(shí) 刻為〇,給定穩(wěn)定點(diǎn)s=16和調(diào)整后的釋放偏移及有關(guān)參數(shù)如表2所示。LCMi=6,LCM2=24,LCM3=24,LCM4=24。按給定的TP模型,采用線性鏈表記錄調(diào)度過程,按任務(wù)優(yōu)先級(jí)從高到低, 任務(wù)Ti在時(shí)間區(qū)間[16,16+24)中調(diào)度結(jié)果鏈表中有4個(gè)結(jié)點(diǎn),從第一個(gè)結(jié)點(diǎn)開始,每個(gè)結(jié) 點(diǎn)5^竹字段值和 611(1字段值依次分別為18,19;24,25;30,31;36,37 ;任務(wù)丁i,T2在時(shí) 間區(qū)間[16,16+24)中調(diào)度結(jié)果鏈表中有5個(gè)結(jié)點(diǎn),從第一個(gè)結(jié)點(diǎn)開始,每個(gè)結(jié)點(diǎn)start字 段值和611(1字段值依次分別為16,19;24,27 ;30,31;32,34;36,37;任務(wù)丁i,t2,t3在時(shí)間 區(qū)間[16,16+24)中調(diào)度結(jié)果鏈表中有4個(gè)結(jié)點(diǎn),從第一個(gè)結(jié)點(diǎn)開始,每個(gè)結(jié)點(diǎn)start字段 值和611(1字段值依次分別為16,21;24,29 ;30,31;32,37;任務(wù)1 ^t2,t3,t4在時(shí)間區(qū)間
[16,16+24)中調(diào)度結(jié)果鏈表中有1個(gè)結(jié)點(diǎn),其start字段值為16,end字段值為40。
[0017] 表2 給定穩(wěn)定點(diǎn)S=16和經(jīng)過調(diào)整釋放偏移之后的任務(wù)參數(shù)
【主權(quán)項(xiàng)】
1. 一種采用線性鏈表記錄實(shí)時(shí)任務(wù)調(diào)度過程的方法,其特征是:該方法包括:根據(jù)給 定的調(diào)度模型,按任務(wù)實(shí)例當(dāng)前優(yōu)先級(jí)從高到低順序,采用一個(gè)線性鏈表記錄從給定的時(shí) 間起點(diǎn)到截止時(shí)間點(diǎn)內(nèi)所有任務(wù)實(shí)例的調(diào)度執(zhí)行,任務(wù)實(shí)例開始執(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í)行。
【專利摘要】<b>采用線性鏈表記錄實(shí)時(shí)任務(wù)調(diào)度過程的方法。實(shí)時(shí)系統(tǒng)中的可調(diào)度性測(cè)試、確定調(diào)度起始穩(wěn)定點(diǎn)等都需要模擬任務(wù)的調(diào)度過程,該過程的表示方法直接關(guān)系到相應(yīng)算法的運(yùn)行時(shí)間或效率。本發(fā)明方法包括:根據(jù)給定的調(diào)度模型,按任務(wù)實(shí)例當(dāng)前優(yōu)先級(jí)從高到低順序,采用一個(gè)線性鏈表記錄從給定的時(shí)間起點(diǎn)到截止時(shí)間點(diǎn)內(nèi)所有任務(wù)實(shí)例的調(diào)度執(zhí)行,任務(wù)實(shí)例開始執(zhí)行時(shí)間點(diǎn)記錄到鏈表結(jié)點(diǎn)的</b><b>start</b><b>字段,任務(wù)實(shí)例執(zhí)行中止時(shí)間點(diǎn)記錄到鏈表結(jié)點(diǎn)的</b><b>end</b><b>字段,每個(gè)鏈表結(jié)點(diǎn)表示從該結(jié)點(diǎn)</b><b>start</b><b>字段值給出的時(shí)間點(diǎn)到該結(jié)點(diǎn)</b><b>end</b><b>字段值給出的時(shí)間點(diǎn)之間一個(gè)或多個(gè)任務(wù)實(shí)例的連續(xù)調(diào)度執(zhí)行。本發(fā)明用于對(duì)給定的一組實(shí)時(shí)任務(wù)的模擬或仿真或?qū)嶋H應(yīng)用系統(tǒng)中。</b>
【IPC分類】G06F9/48
【公開號(hào)】CN105224400
【申請(qǐng)?zhí)枴緾N201510481356
【發(fā)明人】任健, 姜譽(yù)
【申請(qǐng)人】黑龍江大學(xué)
【公開日】2016年1月6日
【申請(qǐng)日】2015年8月7日