任務(wù)的動(dòng)態(tài)調(diào)度方法與裝置制造方法
【專利摘要】本公開(kāi)涉及一種任務(wù)的動(dòng)態(tài)調(diào)度方法與裝置。該方法包括在每個(gè)動(dòng)態(tài)優(yōu)先級(jí)更新周期內(nèi),判斷是否有依賴于準(zhǔn)備進(jìn)入調(diào)度隊(duì)列的任務(wù)A的其他任務(wù);如沒(méi)有,則獲取準(zhǔn)備進(jìn)入調(diào)度隊(duì)列的任務(wù)A的任務(wù)輸出物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí);根據(jù)任務(wù)A的任務(wù)輸出物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí)計(jì)算任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí);如有依賴于任務(wù)A的其他任務(wù),則遞歸查找依賴任務(wù)A的最頂層任務(wù),最頂層任務(wù)指不被任何任務(wù)所依賴的任務(wù);將查找到的依賴于任務(wù)A的所有最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)的最大值作為任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí);根據(jù)任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí)將任務(wù)A插入到調(diào)度隊(duì)列中的相應(yīng)位置。本公開(kāi)可以提高任務(wù)調(diào)度先后順序的合理性和科學(xué)性。
【專利說(shuō)明】任務(wù)的動(dòng)態(tài)調(diào)度方法與裝置
【技術(shù)領(lǐng)域】
[0001] 本公開(kāi)涉及云計(jì)算領(lǐng)域,特別地,涉及一種任務(wù)的動(dòng)態(tài)調(diào)度方法與裝置。
【背景技術(shù)】
[0002] 眾所周知,云計(jì)算的出現(xiàn)使大規(guī)模并行計(jì)算得到普及和應(yīng)用。在云計(jì)算技術(shù)中,調(diào) 度是其中非常關(guān)鍵的一環(huán),由它決定任務(wù)的優(yōu)先執(zhí)行順序。如何更加合理地安排大規(guī)模任 務(wù)調(diào)度的優(yōu)先順序、提高云計(jì)算資源的合理利用、確保緊急且重要的任務(wù)能被優(yōu)先調(diào)度等 成為云計(jì)算使用人員目前關(guān)注的焦點(diǎn)問(wèn)題。
[0003]目前,現(xiàn)有技術(shù)主要通過(guò)預(yù)先配置好的靜態(tài)優(yōu)先級(jí)來(lái)控制任務(wù)調(diào)度的優(yōu)先順序, 但這種方法存在如下不足:
[0004] 首先,靜態(tài)優(yōu)先級(jí)包含較多的主觀因素,不能真實(shí)、客觀地反映任務(wù)的重要程度。 因?yàn)槊總€(gè)人都認(rèn)為自己負(fù)責(zé)的那部分任務(wù)是最重要和緊急的,這樣,很容易導(dǎo)致任務(wù)優(yōu)先 級(jí)失去意義。
[0005] 其次,任務(wù)的重要性在任務(wù)的整個(gè)生命周期內(nèi)是動(dòng)態(tài)變化的,這個(gè)月很重要,但下 個(gè)月可能就不那么重要了,而靜態(tài)優(yōu)先級(jí)則無(wú)法體現(xiàn)這種變化。
[0006] 當(dāng)然,我們也可以通過(guò)手工方式及時(shí)修改任務(wù)的靜態(tài)優(yōu)先級(jí),但當(dāng)任務(wù)規(guī)模很大 的時(shí)候,維護(hù)工作就會(huì)變得比較困難。
【發(fā)明內(nèi)容】
[0007] 本公開(kāi)鑒于以上問(wèn)題中的至少一個(gè)提出了新的技術(shù)方案。
[0008] 本公開(kāi)在其一個(gè)方面提供了一種任務(wù)的動(dòng)態(tài)調(diào)度方法,其可以提高任務(wù)調(diào)度先后 順序的合理性和科學(xué)性。
[0009] 本公開(kāi)在其另一方面提供了一種任務(wù)的動(dòng)態(tài)調(diào)度裝置,其可以提高任務(wù)調(diào)度先后 順序的合理性和科學(xué)性。
[0010] 根據(jù)本公開(kāi),提供一種任務(wù)的動(dòng)態(tài)調(diào)度方法,包括:
[0011 ] 在每個(gè)動(dòng)態(tài)優(yōu)先級(jí)更新周期內(nèi),判斷是否有依賴于準(zhǔn)備進(jìn)入調(diào)度隊(duì)列的任務(wù)A的 其他任務(wù);
[0012] 如沒(méi)有依賴于任務(wù)A的其他任務(wù),則獲取準(zhǔn)備進(jìn)入調(diào)度隊(duì)列的任務(wù)A的任務(wù)輸出 物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí);
[0013] 根據(jù)任務(wù)A的任務(wù)輸出物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí)計(jì)算任務(wù)A 的動(dòng)態(tài)優(yōu)先級(jí);
[0014] 如有依賴于任務(wù)A的其他任務(wù),則遞歸查找依賴任務(wù)A的最頂層任務(wù),最頂層任務(wù) 指不被任何任務(wù)所依賴的任務(wù);
[0015] 將查找到的依賴于任務(wù)A的所有最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)的最大值作為任務(wù)A的 動(dòng)態(tài)優(yōu)先級(jí);
[0016] 根據(jù)任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí)將任務(wù)A插入到調(diào)度隊(duì)列中的相應(yīng)位置。
[0017] 在本公開(kāi)的一些實(shí)施例中,該方法還包括:
[0018] 在查找到依賴任務(wù)A的最頂層任務(wù)后,判斷依賴任務(wù)A的最頂層任務(wù)的動(dòng)態(tài)優(yōu)先 級(jí)在當(dāng)前周期內(nèi)是否已計(jì)算出;
[0019] 如已計(jì)算出,則直接根據(jù)計(jì)算出動(dòng)態(tài)優(yōu)先級(jí)的依賴任務(wù)A的最頂層任務(wù)確定任務(wù) A的動(dòng)態(tài)優(yōu)先級(jí),否則,根據(jù)任務(wù)輸出物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí)分別計(jì) 算依賴任務(wù)A的各個(gè)最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)。
[0020] 在本公開(kāi)的一些實(shí)施例中,其他任務(wù)對(duì)任務(wù)A的依賴包括直接依賴和間接依賴。
[0021] 在本公開(kāi)的一些實(shí)施例中,任務(wù)輸出物使用率與任務(wù)調(diào)度頻率按設(shè)定頻率更新。
[0022] 根據(jù)本公開(kāi),還提供了一種任務(wù)的動(dòng)態(tài)調(diào)度裝置,包括:
[0023] 依賴性判斷單元,用于在每個(gè)動(dòng)態(tài)優(yōu)先級(jí)更新周期內(nèi)判斷是否有依賴于準(zhǔn)備進(jìn)入 調(diào)度隊(duì)列的任務(wù)A的其他任務(wù);
[0024] 頂層任務(wù)優(yōu)先級(jí)計(jì)算單元,用于如沒(méi)有依賴于任務(wù)A的其他任務(wù),則獲取準(zhǔn)備進(jìn) 入調(diào)度隊(duì)列的任務(wù)A的任務(wù)輸出物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí),根據(jù)任務(wù)A 的任務(wù)輸出物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí)計(jì)算任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí);
[0025] 依賴任務(wù)優(yōu)先級(jí)計(jì)算單元,用于如有依賴于任務(wù)A的其他任務(wù),則遞歸查找依賴 任務(wù)A的最頂層任務(wù),最頂層任務(wù)指不被任何任務(wù)所依賴的任務(wù),將查找到的依賴于任務(wù)A 的所有最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)的最大值作為任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí);
[0026] 任務(wù)插入單元,用于根據(jù)任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí)將任務(wù)A插入到調(diào)度隊(duì)列中的相應(yīng) 位置。
[0027] 在本公開(kāi)的一些實(shí)施例中,裝置還包括:
[0028] 計(jì)算判斷單元,用于在查找到依賴任務(wù)A的最頂層任務(wù)后,判斷依賴任務(wù)A的最頂 層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)在當(dāng)前周期內(nèi)是否已計(jì)算出,如已計(jì)算出,則由依賴任務(wù)優(yōu)先級(jí)計(jì)算 單元直接根據(jù)計(jì)算出動(dòng)態(tài)優(yōu)先級(jí)的依賴任務(wù)A的最頂層任務(wù)確定任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí),否 貝U,由頂層任務(wù)優(yōu)先級(jí)計(jì)算單元根據(jù)任務(wù)輸出物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先 級(jí)分別計(jì)算依賴任務(wù)A的各個(gè)最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)。
[0029] 在本公開(kāi)的一些實(shí)施例中,其他任務(wù)對(duì)任務(wù)A的依賴包括直接依賴和間接依賴。
[0030] 在本公開(kāi)的一些實(shí)施例中,任務(wù)輸出物使用率與任務(wù)調(diào)度頻率按設(shè)定頻率更新。
[0031] 在本公開(kāi)的技術(shù)方案中,由于在每個(gè)更新周期內(nèi),最頂層任務(wù)都根據(jù)任務(wù)輸出物 使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí)計(jì)算自身的動(dòng)態(tài)優(yōu)先級(jí),并且任務(wù)輸出物使用 率與任務(wù)調(diào)度頻率在每個(gè)更新周期內(nèi)都動(dòng)態(tài)更新,因此,可以得到各個(gè)任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)。 此外,在某個(gè)任務(wù)被其他任務(wù)依賴時(shí),可以根據(jù)這些被依賴的任務(wù)來(lái)更新非最頂層任務(wù)的 優(yōu)先級(jí),使得任務(wù)調(diào)度的先后順序更合理、更科學(xué)。
【專利附圖】
【附圖說(shuō)明】
[0032] 此處所說(shuō)明的附圖用來(lái)提供對(duì)本公開(kāi)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分。在附 圖中:
[0033] 圖1是本公開(kāi)一個(gè)實(shí)施例的任務(wù)的動(dòng)態(tài)調(diào)度方法的流程示意圖。
[0034] 圖2是本公開(kāi)一個(gè)任務(wù)依賴關(guān)系示意圖。
[0035] 圖3是本公開(kāi)一個(gè)實(shí)施例的任務(wù)的動(dòng)態(tài)調(diào)度裝置的結(jié)構(gòu)示意圖。
[0036] 圖4是本公開(kāi)另一實(shí)施例的任務(wù)的動(dòng)態(tài)調(diào)度裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0037] 下面將參照附圖描述本公開(kāi)。要注意的是,以下的描述在本質(zhì)上僅是解釋性和示 例性的,決不作為對(duì)本公開(kāi)及其應(yīng)用或使用的任何限制。除非另外特別說(shuō)明,否則,在實(shí)施 例中闡述的部件和步驟的相對(duì)布置以及數(shù)字表達(dá)式和數(shù)值并不限制本公開(kāi)的范圍。另外, 本領(lǐng)域技術(shù)人員已知的技術(shù)、方法和裝置可能不被詳細(xì)討論,但在適當(dāng)?shù)那闆r下意在成為 說(shuō)明書(shū)的一部分。
[0038] 圖1是本公開(kāi)一個(gè)實(shí)施例的任務(wù)的動(dòng)態(tài)調(diào)度方法的流程示意圖。
[0039] 如圖1所示,該實(shí)施例可以包括以下步驟:
[0040] S102,在每個(gè)動(dòng)態(tài)優(yōu)先級(jí)更新周期內(nèi),判斷是否有依賴于準(zhǔn)備進(jìn)入調(diào)度隊(duì)列的任 務(wù)A的其他任務(wù),如沒(méi)有,則轉(zhuǎn)步驟S104,否則轉(zhuǎn)步驟S108 ;
[0041] 假設(shè)任務(wù)A準(zhǔn)備進(jìn)入調(diào)度隊(duì)列,在進(jìn)入調(diào)度隊(duì)列之前需要計(jì)算任務(wù)A的動(dòng)態(tài)優(yōu)先 級(jí)。在計(jì)算任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí)時(shí),可以分兩種情況:一種是任務(wù)A為最頂層任務(wù),S卩,不被 其他任務(wù)所依賴;另一種是任務(wù)A不是最頂層任務(wù),即,被其他任務(wù)所依賴。
[0042] 對(duì)于最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)的計(jì)算僅根據(jù)該任務(wù)的自身參數(shù)計(jì)算即可,而對(duì)于 非最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)的計(jì)算則需考慮依賴該非最頂層任務(wù)的其他任務(wù)的動(dòng)態(tài)優(yōu)先 級(jí)來(lái)確定該非最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí),因此,首先需要判斷任務(wù)A是否被其他任務(wù)所依 賴。
[0043] S104,如沒(méi)有依賴于任務(wù)A的其他任務(wù),則獲取準(zhǔn)備進(jìn)入調(diào)度隊(duì)列的任務(wù)A的任務(wù) 輸出物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí);
[0044] S卩,表明任務(wù)A為最頂層任務(wù),則可以根據(jù)任務(wù)A的自身動(dòng)態(tài)參數(shù)計(jì)算其動(dòng)態(tài)優(yōu)先 級(jí),其中,任務(wù)輸出物使用率與任務(wù)調(diào)度頻率按設(shè)定頻率更新。此外,在計(jì)算任務(wù)的動(dòng)態(tài)優(yōu) 先級(jí)時(shí)考慮任務(wù)的靜態(tài)優(yōu)先級(jí)的目的是在一定程度上反映人為的主觀判斷和意圖。
[0045] S106,根據(jù)任務(wù)A的任務(wù)輸出物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí)計(jì)算 任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí);
[0046] 例如,可以將任務(wù)輸出物使用率與任務(wù)調(diào)度頻率折合成與任務(wù)的靜態(tài)優(yōu)先級(jí)相同 的量綱,再按照為任務(wù)輸出物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí)分配的權(quán)值計(jì)算 任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí)。
[0047] S108,如有依賴于任務(wù)A的其他任務(wù),則遞歸查找依賴任務(wù)A的最頂層任務(wù),最頂 層任務(wù)指不被任何任務(wù)所依賴的任務(wù);
[0048] 即,表明任務(wù)A不是最頂層任,查找依賴任務(wù)A的最頂層任務(wù),進(jìn)而根據(jù)查找到的 一個(gè)或多個(gè)最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)確定任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí)。如果查找到的一個(gè)或多個(gè) 最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)在本周期內(nèi)已根據(jù)步驟S106的方法計(jì)算出,則可以直接計(jì)算出 任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí),否則,需要先計(jì)算出該一個(gè)或多個(gè)最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)再計(jì)算 任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí)。
[0049] S110,將查找到的依賴于任務(wù)A的所有最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)的最大值作為任 務(wù)A的動(dòng)態(tài)優(yōu)先級(jí);
[0050] 由于查找到所有最頂層任務(wù)的調(diào)度均依賴任務(wù)A的調(diào)度,即,在調(diào)度這些最頂層 任務(wù)的同時(shí)或之前必須先調(diào)度任務(wù)A,因此,可以將這些最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)的最大值 作為任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí)。其中,動(dòng)態(tài)優(yōu)先級(jí)的值越大表明其優(yōu)先級(jí)越高。需要指出的是, 也可以規(guī)定動(dòng)態(tài)優(yōu)先級(jí)的值越小其優(yōu)先級(jí)越高,但此時(shí),需將查找到的依賴于任務(wù)A的所 有最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)的最小值作為任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí)。
[0051] S112,根據(jù)任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí)將任務(wù)A插入到調(diào)度隊(duì)列中的相應(yīng)位置。
[0052] 在該實(shí)施例中,由于在每個(gè)更新周期內(nèi),最頂層任務(wù)都根據(jù)任務(wù)輸出物使用率、任 務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí)計(jì)算自身的動(dòng)態(tài)優(yōu)先級(jí),并且任務(wù)輸出物使用率與任務(wù)調(diào) 度頻率在每個(gè)更新周期內(nèi)都動(dòng)態(tài)更新,因此,可以得到各個(gè)任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)。此外,在某 個(gè)任務(wù)被其他任務(wù)依賴時(shí),可以根據(jù)這些被依賴的任務(wù)來(lái)更新非最頂層任務(wù)的優(yōu)先級(jí),使 得任務(wù)調(diào)度的先后順序更合理、更科學(xué)。
[0053] 在步驟S108之后,即,在查找到依賴任務(wù)A的最頂層任務(wù)后,判斷依賴任務(wù)A的最 頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)在當(dāng)前周期內(nèi)是否已計(jì)算出;
[0054] 如已計(jì)算出,則直接根據(jù)計(jì)算出動(dòng)態(tài)優(yōu)先級(jí)的依賴任務(wù)A的最頂層任務(wù)確定任務(wù) A的動(dòng)態(tài)優(yōu)先級(jí),否則,根據(jù)任務(wù)輸出物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí)分別計(jì) 算依賴任務(wù)A的各個(gè)最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)。
[0055] 其中,其他任務(wù)對(duì)任務(wù)A的依賴包括直接依賴和間接依賴。
[0056] 圖2是本公開(kāi)一個(gè)任務(wù)依賴關(guān)系示意圖。
[0057] 如圖2所示,任務(wù)B和任務(wù)C直接依賴于任務(wù)A,間接依賴于任務(wù)G。
[0058] 最頂層任務(wù)是指在依賴于某個(gè)任務(wù)的所有任務(wù)中處于最頂層的那個(gè)任務(wù)。繼續(xù)參 見(jiàn)圖2,以任務(wù)G為例,依賴于任務(wù)G的最頂層任務(wù)包括B、C和D。
[0059] 為了提高任務(wù)調(diào)度先后順序的合理性和科學(xué)性,使真正緊急、重要的任務(wù)優(yōu)先被 調(diào)度執(zhí)行,本公開(kāi)另一實(shí)施例提出了一種綜合優(yōu)先級(jí)和任務(wù)效用的動(dòng)態(tài)自適應(yīng)調(diào)度方法。 其中,任務(wù)效用是指任務(wù)發(fā)揮的價(jià)值和作用,主要體現(xiàn)在任務(wù)調(diào)度后所生成的結(jié)果(通常是 數(shù)據(jù)庫(kù)表數(shù)據(jù)、數(shù)據(jù)文件等)被使用的次數(shù)、以及使用者重要程度等。舉例說(shuō)明,假設(shè)有A、B 兩個(gè)任務(wù),任務(wù)A生成的數(shù)據(jù)表Ta被使用了 5次,任務(wù)B生成的數(shù)據(jù)部Tb被使用了 2次, 則任務(wù)A的效用高于任務(wù)B的效用。
[0060] 該實(shí)施例包括以下步驟:
[0061] 步驟(1 ),判斷是否需要計(jì)算任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí)。
[0062] 步驟(2),如需要計(jì)算任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí),則判斷是否有其他任務(wù)依賴于任務(wù)A, 如沒(méi)有其他任務(wù)依賴于任務(wù)A,則轉(zhuǎn)步驟(3),否則,轉(zhuǎn)步驟(5)。
[0063] 步驟(3),獲取準(zhǔn)備進(jìn)入調(diào)度隊(duì)列的任務(wù)A的相關(guān)信息,任務(wù)A的相關(guān)信息可以包 括但不限于任務(wù)輸出物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí),這些相關(guān)信息可以通 過(guò)下述方式獲取:
[0064] 任務(wù)輸出物(例如,數(shù)據(jù)庫(kù)表、數(shù)據(jù)文件等)使用率:通過(guò)監(jiān)控方式獲取到其被訪問(wèn) 的次數(shù),例如,Oracle數(shù)據(jù)庫(kù),打開(kāi)SQL語(yǔ)句監(jiān)控功能,則可獲取到所有被執(zhí)行的SQL語(yǔ)句, 再?gòu)倪@些SQL語(yǔ)句中提取跟任務(wù)輸出物相關(guān)的信息(例如,表名等),來(lái)統(tǒng)計(jì)指定時(shí)間范圍內(nèi) 出現(xiàn)的次數(shù);
[0065] 任務(wù)調(diào)度頻率:在任務(wù)調(diào)度歷史記錄中提取到指定時(shí)間范圍內(nèi)任務(wù)被調(diào)度的次 數(shù),例如,每天調(diào)度1次,每小時(shí)調(diào)度1次等。調(diào)度周期越小,調(diào)度頻度就越大,也意味著該 任務(wù)的時(shí)效性要求較高,其重要程度就越高。
[0066] 任務(wù)的靜態(tài)優(yōu)先級(jí):是指用戶在配置該任務(wù)時(shí),給該任務(wù)設(shè)定的一個(gè)重要程度值 (例如,分為1-10級(jí),數(shù)值越大,表明任務(wù)的重要程度越高)。
[0067] 步驟(4),根據(jù)任務(wù)輸出物使用率、任務(wù)調(diào)度頻率和任務(wù)的靜態(tài)優(yōu)先級(jí),計(jì)算任務(wù) A的動(dòng)態(tài)優(yōu)先級(jí);
[0068] 假設(shè)任務(wù)的靜態(tài)優(yōu)先級(jí)為Ps (通常為非0正整數(shù),用Pmax表示靜態(tài)優(yōu)先級(jí)的最大 值),任務(wù)輸出物利用率(即某個(gè)時(shí)間范圍內(nèi)被訪問(wèn)次數(shù),用整數(shù)表示,最小值為0,最大值為 Vmax)為Fv,任務(wù)調(diào)度頻度(即某個(gè)時(shí)間范圍內(nèi)被調(diào)度的次數(shù),用整數(shù)表示,最小值為0,最 大值為Smax)為Fs,則任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)Pd的計(jì)算公式可以為:Pd=ceil (Cp*Ps+Cv*ceil (Fv/Vmax*Pmax) +Cs氺ceil (Fs/Smax氺Pmax))。
[0069]其中,
[0070] Cp為任務(wù)靜態(tài)優(yōu)先級(jí)的權(quán)重因子,Cv為任務(wù)輸出物利用率的權(quán)重因子,Cs為任務(wù) 調(diào)度頻度的權(quán)重因子,并且Cp+Cv+Cs=100% ;
[0071] ceil表示向上取整,表示乘法,"/"表示除法;
[0072] Pmax為靜態(tài)優(yōu)先級(jí)的最大值,為靜態(tài)值,通常在任務(wù)調(diào)度系統(tǒng)程序初始化時(shí)就已 經(jīng)確定,例如,1-10表示將任務(wù)優(yōu)先級(jí)分為10個(gè)等級(jí),10為最高優(yōu)先級(jí);
[0073] Vmax表不當(dāng)如系統(tǒng)中指定周期內(nèi)所有任務(wù)輸出物利用率中的最大值,例如,系統(tǒng) 中總共配置了 5個(gè)任務(wù),在指定周期內(nèi)(例如,1個(gè)月)被訪問(wèn)的次數(shù)分別為1、2、6、10、30,那 么Vmax為30,需要注意的是,Vmax是動(dòng)態(tài)變化的,在下一個(gè)指定周期內(nèi)可能就變成了 15或 者60等;
[0074] Smax表示當(dāng)前系統(tǒng)中指定周期(例如,1個(gè)月)內(nèi)所有任務(wù)被調(diào)度次數(shù)中的最大值, 例如,系統(tǒng)中共配置了 5個(gè)任務(wù),其1個(gè)月內(nèi)被調(diào)度的次數(shù)分別為1、3、4、30、720,則Smax為 720。同樣,Smax也是動(dòng)態(tài)變化的,在下一個(gè)指定周期內(nèi)可能變?yōu)?或者30。
[0075] 步驟(5),如果有其他任務(wù)依賴于任務(wù)A,則首先遞歸查詢依賴于任務(wù)A的最頂層 任務(wù),并判斷在當(dāng)前周期內(nèi)是否已計(jì)算出這些最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí),如尚未計(jì)算,則可 以按照步驟(3)和(4)的方法計(jì)算最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí),否則,取所有最頂層任務(wù)的動(dòng) 態(tài)優(yōu)先級(jí)的最大值作為任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí),以確保任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí)不拉低依賴于任 務(wù)A的任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)。
[0076] 步驟(6),根據(jù)任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí),將任務(wù)A插入到調(diào)度隊(duì)列的對(duì)應(yīng)位置并等待 被分派與執(zhí)行。
[0077] 接下來(lái),再通過(guò)一個(gè)實(shí)例對(duì)本公開(kāi)的技術(shù)方案進(jìn)行詳細(xì)的說(shuō)明。
[0078] 步驟1,任務(wù)A觸發(fā)條件成立,需要被調(diào)度執(zhí)行;
[0079] 步驟2,檢查任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí)是否已計(jì)算,如果已計(jì)算,則轉(zhuǎn)步驟9,否則,轉(zhuǎn)步 驟3 ;
[0080] 步驟3,向上檢查是否存在依賴任務(wù)A的任務(wù)Bx (即所有任務(wù)Bx需要等待任務(wù)A 調(diào)度完成才能被正式調(diào)度執(zhí)行,可以有多個(gè),既包括直接向上依賴,也包括間接向上依賴), 如果有,則轉(zhuǎn)步驟4,否則,轉(zhuǎn)步驟7 ;
[0081] 步驟4,遞歸查找所有向上依賴任務(wù)Bx,直到找到最頂層的向上依賴任務(wù)Bt 1、 Bt2、Bt3··· Btn ;
[0082] 步驟5,依次檢查任務(wù)Btl、Bt2、Bt3"?Btn在當(dāng)前周期內(nèi)是否已經(jīng)計(jì)算過(guò)動(dòng)態(tài)優(yōu)先 級(jí),如果沒(méi)有,則分別計(jì)算并保存;
[0083] 步驟6,選取任務(wù)財(cái)1、8丨2、8丨3···^!!中最大的動(dòng)態(tài)優(yōu)先級(jí),作為任務(wù)A的動(dòng)態(tài)優(yōu) 先級(jí),并保存,轉(zhuǎn)步驟9;
[0084] 步驟7,獲取任務(wù)A的靜態(tài)優(yōu)先級(jí)、任務(wù)輸出結(jié)果訪問(wèn)頻次、任務(wù)調(diào)度頻次等信息;
[0085] 步驟8,計(jì)算任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí),并保存;
[0086] 步驟9,根據(jù)任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí),將任務(wù)插入到調(diào)度等待隊(duì)列,等待被分配、執(zhí) 行;
[0087] 步驟10,正式分配執(zhí)行任務(wù)A。
[0088] 本領(lǐng)域普通技術(shù)人員可以理解,實(shí)現(xiàn)上述方法實(shí)施例的全部和部分步驟可以通過(guò) 程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算設(shè)備可讀取存儲(chǔ)介質(zhì)中,該程 序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟,而前述的存儲(chǔ)介質(zhì)可以包括ROM、RAM、磁碟 和光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0089] 圖3是本公開(kāi)一個(gè)實(shí)施例的任務(wù)的動(dòng)態(tài)調(diào)度裝置的結(jié)構(gòu)示意圖。
[0090] 如圖3所示,該實(shí)施例中的任務(wù)的動(dòng)態(tài)調(diào)度裝置30可以包括依賴性判斷單元302、 頂層任務(wù)優(yōu)先級(jí)計(jì)算單元304、依賴任務(wù)優(yōu)先級(jí)計(jì)算單元306和任務(wù)插入單元308。其中,
[0091] 依賴性判斷單元302,用于在每個(gè)動(dòng)態(tài)優(yōu)先級(jí)更新周期內(nèi)判斷是否有依賴于準(zhǔn)備 進(jìn)入調(diào)度隊(duì)列的任務(wù)A的其他任務(wù);
[0092] 頂層任務(wù)優(yōu)先級(jí)計(jì)算單元304,用于如沒(méi)有依賴于任務(wù)A的其他任務(wù),則獲取準(zhǔn)備 進(jìn)入調(diào)度隊(duì)列的任務(wù)A的任務(wù)輸出物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí),根據(jù)任 務(wù)A的任務(wù)輸出物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí)計(jì)算任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí),其 中,任務(wù)輸出物使用率與任務(wù)調(diào)度頻率按設(shè)定頻率更新;
[0093] 依賴任務(wù)優(yōu)先級(jí)計(jì)算單元306,用于如有依賴于任務(wù)A的其他任務(wù),則遞歸查找依 賴任務(wù)A的最頂層任務(wù),最頂層任務(wù)指不被任何任務(wù)所依賴的任務(wù),將查找到的依賴于任 務(wù)A的所有最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)的最大值作為任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí);
[0094] 任務(wù)插入單元308,用于根據(jù)任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí)將任務(wù)A插入到調(diào)度隊(duì)列中的相 應(yīng)位置。
[0095] 在該實(shí)施例中,由于在每個(gè)更新周期內(nèi),最頂層任務(wù)都根據(jù)任務(wù)輸出物使用率、任 務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí)計(jì)算自身的動(dòng)態(tài)優(yōu)先級(jí),并且任務(wù)輸出物使用率與任務(wù)調(diào) 度頻率在每個(gè)更新周期內(nèi)都動(dòng)態(tài)更新,因此,可以得到各個(gè)任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)。此外,在某 個(gè)任務(wù)被其他任務(wù)依賴時(shí),可以根據(jù)這些被依賴的任務(wù)來(lái)更新非最頂層任務(wù)的優(yōu)先級(jí),使 得任務(wù)調(diào)度的先后順序更合理、更科學(xué)。
[0096] 圖4是本公開(kāi)另一實(shí)施例的任務(wù)的動(dòng)態(tài)調(diào)度裝置的結(jié)構(gòu)示意圖。
[0097] 如圖4所示,與圖3中的實(shí)施例相比,該實(shí)施例中的裝置40還包括:
[0098] 計(jì)算判斷單元402,用于在查找到依賴任務(wù)A的最頂層任務(wù)后,判斷依賴任務(wù)A的 最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)在當(dāng)前周期內(nèi)是否已計(jì)算出,如已計(jì)算出,則由依賴任務(wù)優(yōu)先級(jí) 計(jì)算單元直接根據(jù)計(jì)算出動(dòng)態(tài)優(yōu)先級(jí)的依賴任務(wù)A的最頂層任務(wù)確定任務(wù)A的動(dòng)態(tài)優(yōu)先 級(jí),否則,由頂層任務(wù)優(yōu)先級(jí)計(jì)算單元根據(jù)任務(wù)輸出物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài) 優(yōu)先級(jí)分別計(jì)算依賴任務(wù)A的各個(gè)最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)。
[0099] 其中,其他任務(wù)對(duì)任務(wù)A的依賴包括直接依賴和間接依賴。
[0100] 本說(shuō)明書(shū)中各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其 他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同和相似的部分可以相互參見(jiàn)。對(duì)于裝置實(shí)施例 而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處可以參見(jiàn)方法實(shí)施例 部分的說(shuō)明。
[0101 ] 雖然已參照示例性實(shí)施例描述了本公開(kāi),但應(yīng)理解,本公開(kāi)不限于上述的示例性 實(shí)施例。對(duì)于本領(lǐng)域技術(shù)人員顯然的是,可以在不背離本公開(kāi)的范圍和精神的條件下修改 上述的示例性實(shí)施例。所附的權(quán)利要求的范圍應(yīng)被賦予最寬的解釋,以包含所有這樣的修 改以及等同的結(jié)構(gòu)和功能。
【權(quán)利要求】
1. 一種任務(wù)的動(dòng)態(tài)調(diào)度方法,其特征在于,包括: 在每個(gè)動(dòng)態(tài)優(yōu)先級(jí)更新周期內(nèi),判斷是否有依賴于準(zhǔn)備進(jìn)入調(diào)度隊(duì)列的任務(wù)A的其他 任務(wù); 如沒(méi)有依賴于所述任務(wù)A的其他任務(wù),則獲取準(zhǔn)備進(jìn)入調(diào)度隊(duì)列的任務(wù)A的任務(wù)輸出 物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí); 根據(jù)所述任務(wù)A的任務(wù)輸出物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí)計(jì)算所述任 務(wù)A的動(dòng)態(tài)優(yōu)先級(jí); 如有依賴于所述任務(wù)A的其他任務(wù),則遞歸查找依賴所述任務(wù)A的最頂層任務(wù),所述最 頂層任務(wù)指不被任何任務(wù)所依賴的任務(wù); 將查找到的依賴于所述任務(wù)A的所有最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)的最大值作為所述任 務(wù)A的動(dòng)態(tài)優(yōu)先級(jí); 根據(jù)所述任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí)將所述任務(wù)A插入到調(diào)度隊(duì)列中的相應(yīng)位置。
2.根據(jù)權(quán)利要求1所述的任務(wù)的動(dòng)態(tài)調(diào)度方法,其特征在于,所述方法還包括: 在查找到依賴所述任務(wù)A的最頂層任務(wù)后,判斷依賴所述任務(wù)A的最頂層任務(wù)的動(dòng)態(tài) 優(yōu)先級(jí)在當(dāng)前周期內(nèi)是否已計(jì)算出; 如已計(jì)算出,則直接根據(jù)計(jì)算出動(dòng)態(tài)優(yōu)先級(jí)的依賴所述任務(wù)A的最頂層任務(wù)確定所述 任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí),否則,根據(jù)任務(wù)輸出物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí)分 別計(jì)算依賴所述任務(wù)A的各個(gè)最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)。
3.根據(jù)權(quán)利要求1所述的任務(wù)的動(dòng)態(tài)調(diào)度方法,其特征在于,所述其他任務(wù)對(duì)所述任 務(wù)A的依賴包括直接依賴和間接依賴。
4.根據(jù)權(quán)利要求1所述的任務(wù)的動(dòng)態(tài)調(diào)度方法,其特征在于,所述任務(wù)輸出物使用率 與任務(wù)調(diào)度頻率按設(shè)定頻率更新。
5. 一種任務(wù)的動(dòng)態(tài)調(diào)度裝置,其特征在于,包括: 依賴性判斷單元,用于在每個(gè)動(dòng)態(tài)優(yōu)先級(jí)更新周期內(nèi)判斷是否有依賴于準(zhǔn)備進(jìn)入調(diào)度 隊(duì)列的任務(wù)A的其他任務(wù); 頂層任務(wù)優(yōu)先級(jí)計(jì)算單元,用于如沒(méi)有依賴于所述任務(wù)A的其他任務(wù),則獲取準(zhǔn)備進(jìn) 入調(diào)度隊(duì)列的任務(wù)A的任務(wù)輸出物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí),根據(jù)所述 任務(wù)A的任務(wù)輸出物使用率、任務(wù)調(diào)度頻率與任務(wù)的靜態(tài)優(yōu)先級(jí)計(jì)算所述任務(wù)A的動(dòng)態(tài)優(yōu) 先級(jí); 依賴任務(wù)優(yōu)先級(jí)計(jì)算單元,用于如有依賴于所述任務(wù)A的其他任務(wù),則遞歸查找依賴 所述任務(wù)A的最頂層任務(wù),所述最頂層任務(wù)指不被任何任務(wù)所依賴的任務(wù),將查找到的依 賴于所述任務(wù)A的所有最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)的最大值作為所述任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí); 任務(wù)插入單元,用于根據(jù)所述任務(wù)A的動(dòng)態(tài)優(yōu)先級(jí)將所述任務(wù)A插入到調(diào)度隊(duì)列中的 相應(yīng)位置。
6.根據(jù)權(quán)利要求5所述的任務(wù)的動(dòng)態(tài)調(diào)度裝置,其特征在于,所述裝置還包括: 計(jì)算判斷單元,用于在查找到依賴所述任務(wù)A的最頂層任務(wù)后,判斷依賴所述任務(wù)A的 最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)在當(dāng)前周期內(nèi)是否已計(jì)算出,如已計(jì)算出,則由所述依賴任務(wù)優(yōu) 先級(jí)計(jì)算單元直接根據(jù)計(jì)算出動(dòng)態(tài)優(yōu)先級(jí)的依賴所述任務(wù)A的最頂層任務(wù)確定所述任務(wù)A 的動(dòng)態(tài)優(yōu)先級(jí),否則,由所述頂層任務(wù)優(yōu)先級(jí)計(jì)算單元根據(jù)任務(wù)輸出物使用率、任務(wù)調(diào)度頻 率與任務(wù)的靜態(tài)優(yōu)先級(jí)分別計(jì)算依賴所述任務(wù)A的各個(gè)最頂層任務(wù)的動(dòng)態(tài)優(yōu)先級(jí)。
7.根據(jù)權(quán)利要求5所述的任務(wù)的動(dòng)態(tài)調(diào)度裝置,其特征在于,所述其他任務(wù)對(duì)所述任 務(wù)A的依賴包括直接依賴和間接依賴。
8.根據(jù)權(quán)利要求5所述的任務(wù)的動(dòng)態(tài)調(diào)度裝置,其特征在于,所述任務(wù)輸出物使用率 與任務(wù)調(diào)度頻率按設(shè)定頻率更新。
【文檔編號(hào)】G06F9/46GK104142855SQ201310172431
【公開(kāi)日】2014年11月12日 申請(qǐng)日期:2013年5月10日 優(yōu)先權(quán)日:2013年5月10日
【發(fā)明者】向勇, 劉波, 劉春 , 陳翀, 關(guān)迎暉, 陳康, 張青, 胡軍軍, 樂(lè)建兵, 謝曉軍, 王保中 申請(qǐng)人:中國(guó)電信股份有限公司