亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于有向無環(huán)圖的主路徑填充調度方法與流程

文檔序號:12801790閱讀:302來源:國知局
一種基于有向無環(huán)圖的主路徑填充調度方法與流程

本發(fā)明涉及計算機調度技術領域,特別是指一種基于有向無環(huán)圖的主路徑填充調度方法。



背景技術:

近年來,實時系統(tǒng)受到越來越多的關注,實時系統(tǒng)的基本問題就是要保證系統(tǒng)中的任務滿足其時間要求從而保證系統(tǒng)的實時性。對于大量串行和并行共存的具有時序限制的任務調度來說,不僅需要關注調度結果的正確性,還需要考慮任務的執(zhí)行完成時間、執(zhí)行截止期限以及任務的并發(fā)執(zhí)行等多種因素。

在并行計算與處理中,針對有向無環(huán)圖(directacyclicgraph,dag)來表示的并行任務在多處理機上的調度研究由來已久,如何把復雜應用程序的所有任務調度到多處理器系統(tǒng),并考慮任務的完成截止期限以及并發(fā)執(zhí)行等,一直是眾所周知的難題。

現(xiàn)有技術中,對串行和并行共存的具有時序限制的任務調度來說,還不能有效的選取主路徑以及滿足每個任務的完成截止期限。



技術實現(xiàn)要素:

本發(fā)明要解決的技術問題是提供一種基于有向無環(huán)圖的主路徑填充調度方法,以解決現(xiàn)有技術所存在的不能有效的選取主路徑以及滿足每個任務的完成截止期限的問題。

為解決上述技術問題,本發(fā)明實施例提供一種基于有向無環(huán)圖的主路徑填充調度方法,包括:

針對每個任務,根據(jù)dag圖中子任務的出入度大小選取主路徑,其中,每個任務包括:至少1個子任務;

按照選取的主路徑,將任務劃分為并行部分和串行部分;

根據(jù)任務劃分結果,確定任務的最大完成時間和任務的最小完成時間;

判斷任務的完成截止期限是否大于等于任務的最小完成時間且小于任務的最大完成時間;

若是,則計算任務可填充時間,將任務可填充時間分配給每個并行部分,得到每個并行部分可使用的時間冗余;

根據(jù)得到的每個并行部分可使用的時間冗余,將每個并行部分中的某并行子任務填充到主路徑子任務所在的處理器執(zhí)行。

進一步地,所述針對每個任務,根據(jù)dag圖中子任務的出入度大小選取主路徑包括:

針對每個任務,在dag圖中,由起始子任務到終止子任務生成路徑集合;

選擇路徑集合中路徑長度最大的路徑作為待選的主路徑;

計算任務中子任務的出入度;

根據(jù)計算得到的任務中子任務的出入度,按照主路徑包含出入度大的子任務的原則,從待選的主路徑中選擇出主路徑。

進一步地,所述按照主路徑包含出入度大的子任務的原則,從待選的主路徑中選擇出主路徑包括:

若出入度最大的子任務是待選的主路徑所共有的子任務,則選擇所述子任務。

進一步地,所述按照主路徑包含出入度大的子任務的原則,從待選的主路徑中選擇出主路徑包括:

若存在兩個或兩個以上出入度最大的子任務是并行的,則計算包含并行子任務的路徑中所述并行子任務的父親節(jié)點和孩子節(jié)點的出入度之和;

選擇其中出入度較大的并行子任務作為主路徑中的子任務;

依次比較所述待選的主路徑中所有的子任務,選出出入度大的子任務并確定最終的主路徑。

進一步地,所述按照選取的主路徑,將任務劃分為并行部分和串行部分包括:

按照選取的主路徑,將任務ti劃分為并行部分和串行部分劃分后任務ti表示為:

其中,total表示任務ti劃分為串行部分和并行部分的總數(shù),i代表任務數(shù)目,m代表并行部分任務的總數(shù)目,n代表串行部分任務的總數(shù)目,k表示式中的一個計數(shù)角標;

所述任務的最大完成時間表示為:

其中,tmax表示任務的最大完成時間。

進一步地,所述任務的最小完成時間表示為:

其中,tmin表示任務的最小完成時間。

進一步地,所述任務可填充時間表示為:

tr=td-tmin

其中,tr表示任務可填充時間,td表示任務的完成截止期限,tmin表示任務的最小完成時間。

進一步地,所述將任務可填充時間分配給每個并行部分,得到每個并行部分可使用的時間冗余包括:

根據(jù)計算得到的任務可填充時間計算填充因子:

ε=tr/pi

其中,ε表示填充因子,tr表示任務可填充時間,pi表示任務中并行部分的執(zhí)行時間總和;

根據(jù)計算得到的填充因子,計算每個并行部分填充調度的執(zhí)行時間:

其中,表示并行部分填充調度的執(zhí)行時間;

根據(jù)計算得到的每個并行部分填充調度的執(zhí)行時間,計算每個并行部分可使用的時間冗余。

進一步地,所述每個并行部分可使用的時間冗余表示為:

即:

其中,表示并行部分可使用的時間冗余。

進一步地,所述根據(jù)得到的每個并行部分可使用的時間冗余,將每個并行部分中的某并行子任務填充到主路徑子任務所在的處理器執(zhí)行包括:

在填充調度時,若并行部分中的并行子任務被拆分,則填充調度后,被拆分的并行部分中的并行子任務的剩余部分的執(zhí)行時間為:

其中,表示被拆分的并行部分中的并行子任務的剩余部分的執(zhí)行時間。

本發(fā)明的上述技術方案的有益效果如下:

上述方案中,針對每個任務,根據(jù)dag圖中子任務的出入度大小選取主路徑,其中,每個任務包括:至少1個子任務;按照選取的主路徑,將任務劃分為并行部分和串行部分;根據(jù)任務劃分結果,確定任務的最大完成時間和任務的最小完成時間;判斷任務的完成截止期限是否大于等于任務的最小完成時間且小于任務的最大完成時間;若是,則計算任務可填充時間,將任務可填充時間分配給每個并行部分,得到每個并行部分可使用的時間冗余;根據(jù)得到的每個并行部分可使用的時間冗余,將每個并行部分中的某并行子任務填充到主路徑子任務所在的處理器執(zhí)行,從而確保每個任務在滿足其完成截止期限的基礎上,能夠調整多處理器的并發(fā)執(zhí)行情況,充分利用主路徑子任務所在的處理器,減少對其他處理器的占用,使資源利用率達到最大化,本實施例適用于多處理器系統(tǒng)的實時調度。

附圖說明

圖1為本發(fā)明實施例提供的基于有向無環(huán)圖的主路徑填充調度方法的流程示意圖;

圖2為本發(fā)明實施例提供的任務t1對應的dag示意圖;

圖3為本發(fā)明實施例提供的依據(jù)選取的主路徑并行調度示意圖;

圖4為本發(fā)明實施例提供的依據(jù)選取的主路徑和任務完成截止期限進行填充調度示意圖;

圖5(a)為本發(fā)明實施例提供的任務t2對應的dag示意圖;

圖5(b)為本發(fā)明實施例提供的任務t3對應的dag示意圖;

圖6為本發(fā)明實施例提供的多任務并行調度示意圖;

圖7為本發(fā)明實施例提供的多任務基于主路徑填充調度示意圖。

具體實施方式

為使本發(fā)明要解決的技術問題、技術方案和優(yōu)點更加清楚,下面將結合附圖及具體實施例進行詳細描述。

本發(fā)明針對現(xiàn)有的不能有效的選取主路徑以及滿足每個任務的完成截止期限的問題,提供一種基于有向無環(huán)圖的主路徑填充調度方法。

參看圖1所示,本發(fā)明實施例提供的基于有向無環(huán)圖的主路徑填充調度方法,包括:

s101,針對每個任務,根據(jù)dag圖中子任務的出入度大小選取主路徑,其中,每個任務包括:至少1個子任務;

s102,按照選取的主路徑,將任務劃分為并行部分和串行部分;

s103,根據(jù)任務劃分結果,確定任務的最大完成時間和任務的最小完成時間;

s104,判斷任務的完成截止期限是否大于等于任務的最小完成時間且小于任務的最大完成時間;

s105,若是,則計算任務可填充時間,將任務可填充時間分配給每個并行部分,得到每個并行部分可使用的時間冗余;

s106,根據(jù)得到的每個并行部分可使用的時間冗余,將每個并行部分中的某并行子任務填充到主路徑子任務所在的處理器執(zhí)行。

本發(fā)明實施例所述的基于有向無環(huán)圖的主路徑填充調度方法,針對每個任務,根據(jù)dag圖中子任務的出入度大小選取主路徑,其中,每個任務包括:至少1個子任務;按照選取的主路徑,將任務劃分為并行部分和串行部分;根據(jù)任務劃分結果,確定任務的最大完成時間和任務的最小完成時間;判斷任務的完成截止期限是否大于等于任務的最小完成時間且小于任務的最大完成時間;若是,則計算任務可填充時間,將任務可填充時間分配給每個并行部分,得到每個并行部分可使用的時間冗余;根據(jù)得到的每個并行部分可使用的時間冗余,將每個并行部分中的某并行子任務填充到主路徑子任務所在的處理器執(zhí)行,從而確保每個任務在滿足其完成截止期限的基礎上,能夠調整多處理器的并發(fā)執(zhí)行情況,充分利用主路徑子任務所在的處理器,減少對其他處理器的占用,使資源利用率達到最大化,本實施例適用于多處理器系統(tǒng)的實時調度。

在前述基于有向無環(huán)圖的主路徑填充調度方法的具體實施方式中,進一步地,所述針對每個任務,根據(jù)dag圖中子任務的出入度大小選取主路徑包括:

針對每個任務,在dag圖中,由起始子任務到終止子任務生成路徑集合;

選擇路徑集合中路徑長度最大的路徑作為待選的主路徑;

計算任務中子任務的出入度;

根據(jù)計算得到的任務中子任務的出入度,按照主路徑包含出入度大的子任務的原則,從待選的主路徑中選擇出主路徑。

本實施例中,所述任務為實時調度任務,每個任務包括:至少1個子任務;所述子任務包括:起始子任務、中間子任務、終止子任務;針對每個任務,在dag圖中,由起始子任務到終止子任務生成路徑集合;在連接起始子任務到終止子任務的路徑集合中選擇最長的路徑(可能存在多條路徑)作為待選的主路徑;計算任務中子任務的出入度;根據(jù)計算得到的任務中子任務的出入度,使主路徑包含出入度大的子任務,有效的從待選的主路徑中選擇出唯一確定的主路徑。

本實施例中,作為一可選實施例,所述按照主路徑包含出入度大的子任務的原則,從待選的主路徑中選擇出主路徑可以包括以下情況:

a、若出入度最大的子任務是待選的主路徑所共有的子任務,則選擇所述子任務;

b、若存在兩個或兩個以上出入度最大的子任務是并行的(在dag圖中表現(xiàn)為任務是兄弟節(jié)點),則計算包含并行子任務的路徑中所述并行子任務的父親節(jié)點和孩子節(jié)點的出入度之和,選擇其中出入度較大的并行子任務作為主路徑中的子任務;依次比較所述待選的主路徑中所有的子任務,選出出入度大的子任務并確定最終的主路徑。

本實施例中,作為一可選實施例,所述按照選取的主路徑,將任務劃分為并行部分和串行部分包括:

按照選取的主路徑,將任務ti劃分為并行部分和串行部分劃分后任務ti表示為:

其中,total表示任務ti劃分為串行部分和并行部分的總數(shù),i代表任務數(shù)目ti,m代表并行部分任務的總數(shù)目,n代表串行部分任務的總數(shù)目,k表示式中的一個計數(shù)角標;通常情況下起始子任務和終止子任務可以被劃分為串行,也可以被劃分為并行,因此在式中用表示。

本實施例中,將任務ti劃分為并行部分和串行部分后,計算在當前主路徑狀態(tài)下的任務完成時間。串行任務需要按照順序依次執(zhí)行,并行任務可以根據(jù)服務器的占用情況以及總體任務的執(zhí)行需求選擇一部分任務并行執(zhí)行,另外一部分任務填充串行執(zhí)行,并行任務的最短完成時間為單個任務所需的完成時間的最大值。根據(jù)上述分析,可以求出任務ti的最大完成時間和最小完成時間。

本實施例中,最大完成時間tmax是指只使用一個處理器,所有的并行任務都做填充處理,任務ti的最大完成時間表示為:

本實施例中,最小完成時間tmin是指所有的并行任務都被并行處理,此時并行子任務的完成時間為單個任務完成時間的最大值,任務ti的最小完成時間表示為:

本實施例中,根據(jù)任務ti的完成截止期限用td表示,若td≥tmax,則無論是串行處理還是并行處理,都可以在規(guī)定的任務截止時間內完成,若td<tmin,則不可能在規(guī)定的時間內完成調度。

本實施例中,當td滿足:tmax>td≥tmin時,可以根據(jù)任務ti的完成截止期限td選擇部分任務并行處理;當td滿足:tmax>td≥tmin時,本實施例提出了一種填充調度方式,調度的目的是使調度完成時間接近任務ti的完成截止時間td的同時,盡可能高效的利用處理器資源,減少對其他處理器的占用,使資源利用率達到最大化。

本實施例中,根據(jù)求得的主路徑,求出主路徑完成時間為τi(根據(jù)上述分析,τi=tmin),τi對于所給出的任務ti的完成截止時間td會有時間冗余,根據(jù)任務的截止完成時間和tmin,可以計算出當前主路徑狀態(tài)下任務完成時間的冗余時間,即:任務可填充時間tr:

tr=td-tmin

定義所有并行部分的執(zhí)行時間總和為pi,針對任務可填充時間tr,計算填充因子ε,ε=tr/pi,其中,填充因子ε也可以稱為填充比例系數(shù),通過對每個并行部分中的并行任務填充后調度,能夠使整個任務的完成時間接近于任務的完成截止時間td,每個并行部分填充調度的執(zhí)行時間為:

其中,表示并行部分填充調度的執(zhí)行時間;

每個并行部分的可使用的時間冗余為:

即:

其中,表示并行部分可使用的時間冗余。

本實施例中,根據(jù)得到的每個并行部分可使用的時間冗余,將每個并行部分中的某并行子任務填充到主路徑子任務所在的處理器執(zhí)行,保證主路徑子任務所在的處理器在任務的完成截止期限內完成,充分利用主路徑子任務所在的處理器,減少對其他處理器的占用,使資源利用率達到最大化。

本實施例中,在填充調度時,若并行部分中的并行子任務被拆分,則填充調度后,被拆分的并行部分中的并行子任務的剩余部分的執(zhí)行時間為:

其中,表示被拆分的并行部分中的并行子任務的剩余部分的執(zhí)行時間,表示向下取整。

為了更好地理解本實施例提供的基于有向無環(huán)圖的主路徑填充調度方法,對本實施例提供的基于有向無環(huán)圖的主路徑填充調度方法進行詳細說明,如圖2所示的任務t1對應的dag圖,如圖2所示,任務t1有{t11,t12,t13,…,t110}個子任務,任務的執(zhí)行時間為{2,3,2,2,2,2,2,3,2,2};任務t1的完成截止時間td為16,其中{t11,t13,t14,t17}四個子任務的入度為零,是起始子任務;{t19,t110}的出度為零,是終止子任務。列出從起始子任務到終止子任務的所有任務路徑集合:

{path1:t11——>t12——>t15——>t18——>t19,

path2:t11——>t12——>t15——>t18——>t110,

path3:t11——>t12——>t15——>t19,

path4:t11——>t12——>t16——>t18——>t19,

path5:t11——>t12——>t16——>t18——>t110,

path6:t11——>t12——>t16——>t110,

path7:t11——>t13——>t18——>t19,

path8:t13——>t15——>t18——>t110,

path9:t13——>t15——>t19,

path10:t14——>t16——>t18——>t19,

path11:t14——>t16——>t18——>t110,

path12:t17——>t19}

從上述路徑集合中挑選包含子任務最多的路徑{path1,path2,path4,path5}形成待選的主路徑,待選的主路徑中包含最大子任務數(shù)是5。圖2中10個子任務的出入度分別為{1,3,1,1,4,4,1,4,3,2},待選的主路徑集中的4條路徑所包含的子任務為{t11,t12,t15,t16,t18,t19,t110},對應的出入度為{1,3,4,4,4,3,2},比較出入度,可以得到t15、t16和t18是出入度最高的子任務,按照之前提到的方法來考察這幾個子任務,t18是共有節(jié)點,所有待選的主路徑都包含t18,因此將t18加入最終選擇的主路徑中,t15、t16為并行的兄弟節(jié)點,此時要計算包含這兩個節(jié)點的路徑中t15、t16的父親節(jié)點和孩子節(jié)點出入度之和,計算結果為t15=11,t16=10,因此選擇子任務t15加入最終主路徑。至此,已經選擇出t15和t18兩個節(jié)點,待選的主路徑中選擇包含這兩個節(jié)點的路徑為path1和path2,只需要比較t19和t110的出入度即可得到結果,t19的出入度為3,t110的出入度為2,因此選擇包含t19的路徑path1:t11——>t12——>t15——>t18——>t19作為最終的主路徑。

接下來,根據(jù)所選取的主路徑計算任務t1的執(zhí)行完成時間,將圖2所示的dag圖劃分為串行部分和并行部分,根據(jù)主路徑path1:t11——>t12——>t15——>t18——>t19進行完全的并行執(zhí)行,τ1min=12;進行完全的串行執(zhí)行,τ1max=22,滿足τ1min≤td<τ1max,所以任務t1適用于使用填充調度,任務可填充時間tr為16-12=4,計算可并行部分執(zhí)行時間總和為即p1=2+2+2=6,填充因子ε=tr/pi,即4/6,可將任務可填充時間分配給每個可并行部分,優(yōu)選地,可以將任務可填充時間平均分配給每個可并行部分即:

填充調度前的結果如圖3所示,依據(jù)上述計算結果進行填充調度后的結果如圖4所示,根據(jù)求得的填充因子ε,將并行任務填充到主路徑子任務所在的處理器m1上執(zhí)行,串行部分保持不變,從而使處理器m1在任務完成截止期限td內完成,子任務6、7、10被填充到主路徑所在的處理器上,減少了子任務6、7、10對其他幾個處理器的占用。

上述例子介紹了本實施例的具體實現(xiàn)方法,為更好的說明本實施例相比于單一的并行調度的優(yōu)越性,接下來考慮另外加入兩個任務t2和t3,這兩個任務的dag圖如圖5(a)、5(b)所示。任務t2只有一個單一的串行任務,任務所需完成時間為15,完成截止期限td為16;任務t3有一個串行任務和兩個并行任務,并且任務t3,是一個實時調度任務,即任務所需時間為4,完成截止期限也為4。如果這三個任務放在4個處理器上調度,如果按照傳統(tǒng)的并行調度,調度結果如圖6所示。因為t2和t3的調度是基于任務t1(完整任務)的,因此根據(jù)圖3所示的t1的并行調度,任務t2只能在處理器m3或m4上執(zhí)行,但是最早開始執(zhí)行時間為2,最早完成時間為17,超出了任務的截止完成期限,如圖6所示。

任務t3的串行部分t31可以選擇在處理器m2或m4上執(zhí)行,但是在調度完成任務t1和t2后,已經有三個處理器被占用了,所以任務t3的并行部分t32的最早開始時間只能在處理器m4上,任務t3的完成時間為6,超出了實時任務所要求的截止完成時間。因此,對于這樣三個任務四個處理器的情況下,并行調度是不能夠滿足任務的需求的。那么,如果使用本實施例中基于完成截止期限的填充調度,調度結果如圖7所示,基于任務t1主路徑填充調度的基礎上進行調度,由于處理器的占用被降到了最低,其他處理器的空閑時間被拉長,因此在加入任務t2和t3之后,可以看到三個任務均能夠在各自規(guī)定的任務截止時間內完成。

因此,采用單一的并行方式進行調度可能出現(xiàn)一個任務占用較多處理器資源的情況,使得其他任務的執(zhí)行超出其任務完成截止期限,并且在執(zhí)行后期有較多的處理器處于閑置狀態(tài),從而使所有任務總的完成時間超出完成截止期限;本實施例提出的調度方式會在滿足總的完成截止期限的同時,盡可能減少對其他處理器的占用,使其他任務能有效地進行調度。隨著一個數(shù)據(jù)集內多個任務所包含的并行活動數(shù)量較多時,本發(fā)明提出的基于主路徑的填充調度方式會顯示出較好的調度性能,能夠滿足各任務的截止完成期限。

以上所述是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明所述原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1