亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        線性樹模型的Sporadic任務多核調度方法研究

        2022-09-09 13:33:28黃姝娟李天森馬志昊肖鋒
        西北工業(yè)大學學報 2022年4期
        關鍵詞:模型

        黃姝娟, 李天森, 馬志昊, 肖鋒

        (西安工業(yè)大學 計算機科學與工程學院, 陜西 西安 710021)

        片上多核處理器任務調度方法中,研究者早期考慮的是基于由Liu 和Layland[1]提出的相互獨立的實時周期任務模型[2-10],隨著研究的深入,又開始研究執(zhí)行時間可以隨著關鍵級別變化而變化的混合關鍵任務模型[11-13]和具有制約關系以及帶有周期性的DAG任務模型[14-19]。這些模型對應的調度算法大都是基于RM(rate-monotonous)算法和GEDF(global earliest deadline first)以及PEDF(partitioned earliest deadline first)算法。如文獻[2,4-5]和文獻[3,6-7]針對相互獨立的實時周期任務,分別對RM算法及GEDF算法進行分析并提出新的調度算法。文獻[8]針對PEDF中的劃分算法,提出一種改進的基于冪函數(shù)劃分的EDF算法。文獻[9-10]則是結合PEDF和GEDF各自優(yōu)點,提出了旨在允許部分任務遷移的semi-partitioned調度算法。文獻[11]將PEDF改進的semi-partitioned算法應用在混合關鍵模型中。文獻[13]則是將周期性的DAG圖放在混合關鍵模型中討論。文獻[14-16]在GEDF算法下討論DAG圖的調度。文獻[17]則提出一種PEDF-omp的調度算法,旨在解決類似DAG圖模型的OpenMP并行執(zhí)行。文獻[18]在big.LITTLE體系結構下研究不同類型周期任務的動態(tài)分區(qū)調度方法。文獻[19]則針對既考慮周期性又考慮依賴關系的實時周期性任務,提出基于可延遲時間越短越優(yōu)先(PLTSF,probably lag time shortest first)的調度方法。

        上述所有任務模型中都有一個前提假設,就是所有周期任務均為固定周期。而在實際情況中,有些任務的周期是可以進行調整的。因此本文則針對周期可變的Sporadic任務,提出相應的task模型、job模型以及fragment模型,將實時周期任務劃分為不同層數(shù)節(jié)點,根據每個節(jié)點的實時性、周期性以及節(jié)點之間的層次關系進行相應的線性樹模型轉化,并根據具有時間遷移特性的job以及可變周期的任務調整某些層節(jié)點的位置,使得盡可能多的節(jié)點成為處理器上能夠滿足時限的執(zhí)行節(jié)點。實驗表明,上述調度方法與PEDF、GEDF、RMFF(RM first fit)算法比較起來,在延遲時間、系統(tǒng)利用率、上下文切換次數(shù)、系統(tǒng)搶占次數(shù)、時限丟失率方面都較優(yōu)。

        1 實時可變周期任務模型

        1.1 task模型

        假設一個實時系統(tǒng)τ由n個實時周期性任務組成,記為τ={τ1,τ2,…τn}。每個實時周期任務都包含5個參數(shù),即τi(ri,ei,pi,di,fi)(1≤i≤n)。其中ri表示發(fā)布時刻(release time),即處理器核可以執(zhí)行該任務的時刻。ei表示任務τi最壞情況下的執(zhí)行時間(worst-case execution time,WCET)。pi是τi的最長周期;di表示時限(deadline),要求ei≤di≤pi。如果di=pi,稱該系統(tǒng)為隱含時限的系統(tǒng)(implicit deadline system),將其任務稱為隱含時限任務。如果di

        1.2 job模型

        在一個實時周期任務系統(tǒng)中,所有任務在同一個時刻發(fā)布它們的第一個job,將其稱為同步系統(tǒng),否則稱為異步系統(tǒng)。τi的第j(j≥1)次執(zhí)行稱為第j個job,用τi,j(ri,j,ei,j,di,j,si,j)表示,其中ri,j為τi,j的最早可以開始執(zhí)行的時間且ri,j=ri+(j-1)pi-si,j,di,j為τi,j的絕對時限且di,j=ri+(j-1)pi+di,如果di=pi則di,j=ri+j×pi;ei,j為τi,j的執(zhí)行時間且ei,j=ei。si,j=fi(j)表示τi,j允許提前發(fā)布的時間片數(shù)量,如果si,j=0,則表示不可以提前發(fā)布。

        1.3 fragment模型

        2 TLT和PLT模型

        2.1 相關定義

        根據樹定義Tree=(root,R),root為根節(jié)點,R為樹中各節(jié)點之間的層次關系,由樹的特性可以知道樹中的每個節(jié)點都有層次,根為第一層,根的孩子為第二層。若某個節(jié)點在第h層其孩子就在第h+1層,樹的深度為樹中節(jié)點的最大層次。樹T深度為H用layer(T)=H表示;節(jié)點Pi所處的層次為h用layer(Pi)=h來表示。

        假定一棵樹型結構,除了葉子節(jié)點外,所有父節(jié)點都只有一個孩子節(jié)點,這種樹稱為線性樹LT(line tree)。

        LT具有如下特征:

        1) 樹中第h層的節(jié)點數(shù)用Number(h)來表示。顯然Number(h)=1。

        2) 由于每層只有一個節(jié)點,則該線性樹上所有節(jié)點的個數(shù)等于該線性樹的層數(shù)。

        3) 節(jié)點之間具有一定的時間順序關系。

        線性樹滿足樹的基本特征即在任意一棵樹中:

        1) 有且僅有一個特定的稱為根的節(jié)點;

        2) 當n>1時,其余節(jié)點可分為n個互不相交的有限集合T1,T2,…,Tn,其中每一個集合本身又是一棵樹,并且稱為根的子樹。

        定義1PLT(processor line tree)模型是由處理器核數(shù)M和所有任務周期的最小公倍數(shù)D決定的M棵線性樹組成的森林,記為F=(M,D)。其中M為線性樹的個數(shù),D為其中任何一個線性樹的深度,可以看出這M個線性樹的深度都是D。

        定義2TLT(task line tree)模型是由任務數(shù)量N和任務周期最小公倍數(shù)D決定的N棵線性樹組成的森林,記為F=(N,D)。其中N為線性樹的個數(shù),D為其中任何一個線性樹的深度,可以看出這N個線性樹的深度都是D。

        圖1 τ1(2,3,f1)在[0,6)時間段的TLT模型

        可以看出,如果第一個job的τ1,1允許周期縮短,則縮短的時間片f1(1)≤3-2=1,即τ1,1與τ1,2之間的空節(jié)點層數(shù)。另外,空節(jié)點層以上的節(jié)點也可以下移至空節(jié)點層處,不影響該節(jié)點按時完成。

        同樣,PLT模型中線性樹的節(jié)點也是處理器核上準備執(zhí)行任務job的時間片段fragments,由于與TLT模型線性樹的數(shù)量不同,通常情況下,M

        將2個公式聯(lián)立起來得

        得證。

        推論1任何一個時刻t都能唯一對應于TLT模型的某一層。

        證明根據推論1,在TLT模型中,任何時刻都可以對應其中一個層,那么某個h層也可以對應其中某一個fragment的發(fā)布時刻,但由于該fragment所在的job提前發(fā)布至h′層,則該h層如果不為空節(jié)點層必然存在

        h≤h′+ei-1

        (3)

        式中,k=1,根據定理及公式(3)

        2.2 實時系統(tǒng)的TLT模型和PLT模型

        考慮一個任務系統(tǒng)Γ={τ1,τ2,…,τN}有N個任務要分配到M個處理器上,該系統(tǒng)具有TLT模型和PLT模型分別簡單記為TLTΓ={TLT1,TLT2,…,TLTN}和PLTΓ={PLT1,PLT2,…,PLTM}。所有任務的job被劃分為不同的fragment分布在TLTΓ的不同節(jié)點上,然后根據一定的指派算法被指派在PLTΓ這M棵PLT樹節(jié)點上。其中所有PLTp(1≤p≤M)均為一棵深度為D的樹,這里D為所有任務周期的最小公倍數(shù),D=[p1,p2,…,pn](D>1),PLTΓ中的一棵PLT樹就對應一個處理器核調度的一個順序。

        圖2 實例對應的TLT模型

        以該實例來說明TLT模型與PLT模型之間的轉化方法,如圖3所示。

        圖3 實例中TLT模型與PLT模型之間的轉化方法

        得到PLT的結果如圖4所示。

        圖4 轉化為PLT的最終結果

        3 延遲因子及TLT-PLT轉化方法

        3.1 延遲因子確定

        (x=1,…,k),如果系統(tǒng)在允許范圍內,則該節(jié)點為可提前發(fā)布時間節(jié)點。

        定義4在指派算法S下,定義一個層次分配函數(shù)為hs(x),該函數(shù)表示fragmentsx被指派在哪個層,定義Is(x)表示指派在哪棵線性樹上。如果沒有被指派則這兩個函數(shù)值均為0。

        在指派算法S下,如果一個任務Ti在公共周期內發(fā)布的所有τi,j的所有fragments都被指派到LT樹上,且都時限滿足,那么該任務在S下可調度,如果系統(tǒng)內所有任務都可調度,那么該系統(tǒng)在S下可調度。

        3.2 TLT-PLT轉化算法

        本文根據PLT空節(jié)點層和TLT需要遷移的節(jié)點層的情況實現(xiàn)TLT向PLT的轉化算法。

        算法:TLT-PLT轉化算法

        Input: Enter TLT Set

        N: The number of tasks

        M: The number of processors

        Output: Header Pointer of PLT

        1:i=1;

        2: Whilei≤Mdo

        /*Select minimum quantity empty layer number of LT from TLT into PLT*/

        3:j=findMiniEmptyLayer(TLT);

        4: Trans(j,TLT,PLT);

        5:Delete(j,TLT);/*Delete the LT from TLT set*/

        6:i=i+1;

        7: end While

        /*count the node layer number before every empty layer for every LT in TLT */

        8: Count(TLT, nodeLayerTLT);

        9: Count-emptyLayer(PLT, emptyLayerPLT);/

        *count the empty layer for every LT in PLT*/

        10: While TLT set is not NULL do

        /*Select the maximum number of the nodeLayerTLT equal or smaller than the number of emptyLayerPLT */

        11: flag=FindSame(nodeLayerTLT, emptyLayerPLT)

        12: if(flag!=-1 && Layer is equal)

        /*move the node layer of LT in TLT into the empty layer of PLT*/

        13: Trans(flag, nodeLayerTLT, emptyLayerPLT, TLT, PLT);

        /*move the node layer of LT in PLT to the same empty Layer */

        14: else if (flag!=-1&&Layer is not equal)

        15: Move(emptyLayerPLT, PLT);

        16: Trans(flag, nodeLayerTLT, emptyLayerPLT, TLT, PLT)

        17: else if(advancedPermitted(flag, function))

        18: Advance(flag, TLT);/*count the advanced function if the node is permitted advanced */

        19: else

        20: FragmentMiss (flag, TLT);/*put the LT node into the fragment miss set*/

        21: end if

        22: Delete(flag, TLT);

        23: end While

        上述算法核心思想如下:

        首先,從TLT中找出M個空節(jié)點層數(shù)較少的LT轉移到PLT中,并從TLT中刪除這些節(jié)點。

        其次,計算TLT中每個LT的空節(jié)點層數(shù)之前的連續(xù)節(jié)點數(shù),計算PLT中連續(xù)空節(jié)點層數(shù)的數(shù)量。

        最后,從大到小在TLT中找出連續(xù)節(jié)點層數(shù)與PLT中連續(xù)空節(jié)點數(shù)層數(shù)相同的PLT樹,如果匹配則直接將這些節(jié)點與對應的PLT中的空節(jié)點層進行交換,并刪除TLT中交換過的節(jié)點;如果沒有匹配的則將PLT中的節(jié)點進行層數(shù)下移至數(shù)量相同的空節(jié)點層,再進行交換并刪除TLT中交換過的節(jié)點;如果找不到對應的層數(shù),或者TLT中無法再通過下移空節(jié)點層來匹配TLT中的節(jié)點層則將剩余節(jié)點放置到fragment丟失集合中。

        3.3 處理器預分配算法

        下面就是利用TLT-PLT轉化算法的整體方案。

        3.4 應用實例處理器分配結果

        2.2節(jié)的實例在GEDF、PEDF、RMFF以及TLT-PLT 4種調度算法的處理器分配結果如表1~4所示,在6個時間片內的性能統(tǒng)計如表5所示。

        表1 實例在GEDF調度算法下的運行結果

        表2 實例在PEDF調度算法下的運行結果

        表3 實例在RMFFF調度算法下的運行結果

        表4 實例在TLT-PLT調度算法下的運行結果

        表5 實例在6個時間片內4種算法下的性能比較

        4 實驗及結果分析

        本文的仿真實驗平臺是在4核 Intel core(TM)2 Quad CPU 2.66 GHz內存為3.4G的硬件環(huán)境下運行Ubuntu Linux10.04 2.6.33-29實時內核,采用Codeblocks-v10.05 編寫仿真測試程序。在實驗設計時,選擇了處理器核數(shù)M與N個任務總利用率之間3種不同的關系:「Usum?>m,「Usum?=m,「Usum?

        上下文切換和搶占次數(shù)。通過計算不同任務job之間上下文切換次數(shù)以及job的fragment被打斷情況的計數(shù)來統(tǒng)計搶占次數(shù),說明不同算法的額外開銷。開銷太大則耗時多,任務響應時間長。

        核利用率。 在算法分配過程中如果PLT模型中線性樹有空節(jié)點層,則說明核在該層處于空閑狀態(tài),為了描述核利用情況定義核利用率為該核對應的線性樹的非空節(jié)點個數(shù)與樹深度的比值。該比值是PLT模型對核利用情況的一個反映。該值越大說明該模型和調度方法對核的利用越充分。

        Fragment丟失率。由于PLT模型中的工作在調度過程中存在時限不滿足情況,為了考察時限不滿足嚴重程度定義fragment丟失率為fragment丟失時限節(jié)點的數(shù)量總和與所有fragments數(shù)量總和的比值。

        根據以上的評價指標,對可并行執(zhí)行的工作分別采用GEDF算法、PEDF算法、RMFF算法以及TLT-PLT 轉化算法進行調度,在500個時間片內對系統(tǒng)的上下文切換次數(shù)以及搶占次數(shù)、核利用率以及fragment丟失率進行了統(tǒng)計。

        圖5展示了在3種情況下,每種情況隨機輸入10組數(shù)據得出的上下文切換次數(shù)和搶占次數(shù)的平均值。從圖5中可以看出在負載量較大情況下,TLT-PLT算法的上下文切換及搶占次數(shù)明顯小于GEDF、PEDF和RMFF算法,而在負載量小的情況下對比不是很明顯,因此本文僅針對負載量較大的情況,3種算法的核總利用率和fragment丟失率的情況分別如圖6和圖7所示。

        核利用率效果如圖6所示。結果顯示出采用TLT-PLT算法的核利用率效果和GEDF基本接近且速度快,而比PEDF和RMFF要好得多。原因是GEDF是允許任務遷移且由最近時限來決定優(yōu)先級,效率高遷移開銷大;而PEDF是不允許任務遷移利用率較低;RMFF通過利用率進行首次適應匹配,也不允許遷移,利用率也比較低。而TLT-PLT算法結合三者的優(yōu)點,即允許部分任務遷移又利用LT的空閑節(jié)點進行節(jié)點空閑節(jié)點自適應匹配,且通過調整發(fā)布時間可以快速使得任務被調度,因此效率較高。

        從圖7中可以看出任務的fragment丟失率隨著時間的持續(xù)而增長,但TLT-PLT增長的趨勢較低。分析原因發(fā)現(xiàn)由于GEDF算法和RMFF以及PEDF算法優(yōu)先級是根據自身的參數(shù)(時限和利用率)來決定的,并沒有綜合考慮任務的實際執(zhí)行情況,GEDF由于遷移頻繁而導致有些任務來不及執(zhí)行就放棄了,PEDF和RMFF算法不能根據時間靈活遷移導致很多任務無法及時執(zhí)行。而TLT-PLT算法從一開始就利用最小公倍數(shù)分時間段考慮任務在實際執(zhí)行過程中出現(xiàn)的遷移情況以及fragment是否能滿足的問題,并通過調整發(fā)布時間使得fragment盡量減少丟失,所以得到最好的效果。

        圖5 3種情況下上下文切換 圖6 4種算法核利用 圖7 固定時間片下4種算法 和搶占次數(shù)測試 率增長情況 的fragment丟失率

        5 結 論

        隨著多核技術在嵌入式領域的快速發(fā)展,圍繞片上多處理器實時調度問題進行了大量的研究工作,所提出的調度模型和調度算法大都只針對任務模型。本文從線性樹模型出發(fā),根據Sporadic任務周期可變的情況,建立實時周期任務的task模型、job模型以及fragment模型,提出實時周期任務在多核處理器上的TLT模型和PLT模型和相應的轉化算法,不僅維持了系統(tǒng)利用率和減少時限丟失情況,而且還使得切換次數(shù)和搶占次數(shù)降到比較低的水平。文章首先描述了TLT任務模型和PLT模型,接著說明了該模型的相關性質和相關定理,隨后定義了延遲因子以及相應的轉化算法。仿真實驗表明所采用的TLT-PLT轉化算法不但比PEDF、GEDF、RMFF算法在核利用率以及時限丟失率方面都較優(yōu)而且還減少了搶占次數(shù)和上下文切換次數(shù)。

        猜你喜歡
        模型
        一半模型
        一種去中心化的域名服務本地化模型
        適用于BDS-3 PPP的隨機模型
        提煉模型 突破難點
        函數(shù)模型及應用
        p150Glued在帕金森病模型中的表達及分布
        函數(shù)模型及應用
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權M-估計的漸近分布
        3D打印中的模型分割與打包
        亚洲av成熟国产精品一区二区| 国产午夜福利不卡在线观看视频 | 狼色在线精品影视免费播放| 久久99免费精品国产| 亚洲一区精品无码| 亚洲日韩成人av无码网站| 亚洲国产精品久久久久久网站| 中文字幕国产精品专区| 日本最新一区二区三区视频观看 | 久久777国产线看观看精品 | 国产精品亚洲ΑV天堂无码| 国产精品毛片毛片av一区二区| 疯狂三人交性欧美| 欧美与黑人午夜性猛交久久久| 午夜免费福利一区二区无码AV| 按摩少妇高潮在线一区| 无套内谢老熟女| 久久精品成人欧美大片| 国产精品制服一区二区| 国产国语按摩对白av在线观看| 亚洲av无码成人网站在线观看 | 国产乡下三级全黄三级| 亚洲肥老熟妇四十五十路在线 | 在线播放免费人成毛片乱码| 久久夜色撩人精品国产小说| 青青青伊人色综合久久| 水蜜桃精品视频在线观看| 免费1级做爰片1000部视频| 亚州精品无码久久aV字幕| 亚洲av国产精品色a变脸| 九九影院理论片私人影院| 国产精品国产三级国产av′| 91精品在线免费| 美女视频一区二区三区在线| 看av免费毛片手机播放| 精品久久综合一区二区| 日本女同视频一区二区三区 | 极品诱惑一区二区三区| 中国亚洲av第一精品| 国产在线 | 中文| 97色偷偷色噜噜狠狠爱网站97|