[發明專利]一種基于時間片段的任務調度方法有效
| 申請號: | 201611113867.3 | 申請日: | 2016-12-07 |
| 公開(公告)號: | CN106598717B | 公開(公告)日: | 2019-06-11 |
| 發明(設計)人: | 何俊樺;王艷;朱潔 | 申請(專利權)人: | 陜西尚品信息科技有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 710077 陜西省西安市雁塔區*** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 時間 片段 任務 調度 方法 | ||
1.一種基于時間片段的任務調度方法,其特征在于,包括以下步驟:
步驟一:每當系統監測到有新任務到達或者有任務執行結束時,系統中的任務參數進行初始化;
步驟二:對任務拆分,并確定任務執行時間片段;
步驟三:確定任務的執行順序,并輸出任務調度表;
步驟四:系統實時更新任務調度表,按照時間片段的先后順序,依次控制各處理器執行任務;
其中,步驟一中每當系統監測到有新任務到達或者有任務執行結束時,系統中的任務參數進行初始化;系統中的任務總數為N,以1,2,...,N對系統中的任務進行編號,編號組成的集合表示為I,I={1,2,...,N},則系統中所有任務的集合可以表示為T,T={Ti|i∈I};bi表示任務的到達時間,xi表示任務的估計最少執行時間,di表示任務的執行時限,則集合T中任一任務Ti用Ti=(bi,xi,di)表示;若任務Ti在bi時刻到達,則它必須在接下來的di時間內完成,即截止時刻為bi+di;
xi為處理器在最壞情況下以最大頻率執行該任務時所需的時間,故而任務的實際最少執行時間yi要比xi小,設γi為實際執行時間估計系數,則有yi=γixi,0<γi≤1,γi越小,系統中任務參數的不確定性越大;
步驟二中對任務拆分,并確定任務執行的時間片段;對任務集T中的所有任務,從第一個任務開始到第N個任務依次作如下映射:第1個任務T1的到達時刻b1映射到時刻τ0,截止時刻b1+d1映射到時刻τ1,滿足τ1-τ0=d1;第2個任務T2的到達時刻b2映射到時刻τ1,截止時刻b2+d2映射到時刻τ2,滿足τ2-τ1=d2;…;第N個任務TN的到達時刻bN映射到時刻τN-1,截止時刻bN+dN映射到時刻τN,滿足τN-τN-1=dN;t1,t2滿足t1=τ0<τ1<...<τN=t2,于是時間間隔[t1,t2]就被τ0,τ1,...,τN分割成許多小段的時間片段;用μ來標識{τ0,τ1,...,τN}中的元素,μ∈U,U={0,1,…,N-1},[t1,t2]內的一個時間片段可用[τμ,τμ+1]來表示,確保至少需要1個處理器就可以在[t1,t2]時間內完成任務集T里所有的任務;
系統中包含m個完全相同的處理器,每個處理器的運行頻率f1,f2,...,fmax(f1<f2<...<fmax),用運行頻率等級集合Q={1,2,...,l}來表示,其中1對應最小的運行頻率f1,l對應最大的運行頻率fmax;所述處理器的電壓/頻率分別通過動態電壓頻率調節DVFS技術獨立地進行調整,多個處理器可以同時分別以不同的運行頻率等級執行不同的任務;
所述任務集T中的單個任務可以拆分成多個子任務來分步執行,再確定子任務將在哪個執行時間片段,以及執行時長和運行頻率等級;
用q表示處理器的一個運行頻率等級,q∈Q,把稱為負載分布系數,表示處理器將在時間間隔[τμ,τμ+1]上某一時長為的時間區間內以運行頻率等級q執行任務Ti,
有如下約束條件:
(1)一個任務一次只能被指派到一個處理器上被執行,于是有
(2)每個處理器在[τμ,τμ+1]內所能處理的最大負載為1,即在[τμ,τμ+1]內該處理器上一直都有任務在執行,而系統包含m個處理器,故系統在[τμ,τμ+1]內所能處理的最大負載即為m,于是有
處理器的標準化運行速率s與運行頻率f之間的關系為s=f/fmax,f∈[f1,fmax],s∈[0,1],此時相應的功率由P(sq)給出,于是在時間間隔[t1,t2]內系統的總能耗
所述步驟二中方法等價為一個目的變量和約束條件數量可控的有限維線性規劃問題,即求出所有任務在各時間片段內的負載分布系數使得系統在整個時間間隔[t1,t2]內的總能耗E(t1,t2)達到最小;
從而得到負載分布系數集合表示某一處理器將在時間間隔[τμ,τμ+1]中某一時長為的時間區間內以運行頻率等級q執行任務Ti;
步驟三中確定任務的執行順序,并輸出任務調度表;用1,2,...,m對所有處理器進行編號,編號組成的集合表示為K,K={1,2,...,m};i∈I,表示任務編號;k∈K,表示處理器編號;q∈Q,表示運行頻率等級;在時間間隔[t1,t2]內的某一時間片段中,用起始系數表示處理器k在時刻開始以模式q運行任務Ti,用截止系數表示在時刻結束該任務的本次執行,具體按如下步驟執行:
(3-1)給所有任務在所有時間片段內的起始系數和截止系數均置0,向系統申請一個處理器用于執行任務,稱該處理器處于活躍態,其它暫未被申請過的處理器稱為空閑態,此時處于活躍態的處理器最大編號為k=1;
(3-2)按照任務編號i遞增的順序,從第1個任務開始,依次為任務集T中的各任務確定起始系數和截止系數;對第1個任務,其截止系數賦值為從第2個任務開始一直到第N個任務,將前一任務的截止系數作為本任務的起始系數;
(3-3)此時處于活躍態的處理器最大編號為k,若前一個任務的截止系數加上本任務的負載分布系數之和不大于處理器最大編號k,則對所有的運行頻率等級q,本任務在處理器k上以運行頻率等級q執行時的截止系數設置為本任務的起始系數加上負載分布系數的和,本任務分配完畢,則返回步驟3-2,開始下個任務分配;
若前一個任務的截止系數加上本任務的負載分布系數之和大于處理器最大編號k,則將本任務在處理器k上以運行頻率等級q執行時的截止系數設置為1,說明已分配的處理器已經達到滿負載,故再向系統申請一個處理器;申請規則為:第1次申請的處理器其編號為1,第2次申請的處理器編號為2,……,第m次申請的處理器編號為m;若申請的次數超過任務執行模塊中處理器的最大數量,則說明系統出錯,本次任務調度結束,此時處于活躍態的處理器最大編號為k=k+1;將本任務的負載分布系數減去本任務在處理器k-1上以運行頻率等級q執行時的截止系數與起始系數的差,作為本任務在處理器k上以運行頻率等級q執行時的截止系數;返回步驟3-2,開始下個任務分配;
(3-4)所有任務分配完畢后,輸出包含所有任務的起始系數和截止系數的一個集合該集合為任務調度表。
2.根據權利要求1所述基于時間片段的任務調度方法,其特征在于,步驟四中系統實時更新任務調度表,按照時間片段如[τ0,τ1],[τ1,τ2],……,[τN-1,τN]的先后順序,依次控制各處理器執行任務;在時間片段[τμ,τμ+1]內,根據和的值,任務執行模塊控制處理器k于時刻以運行頻率等級q開始執行任務Ti,并于時刻結束該本次任務的執行;
每個任務Ti結束時,任務執行模塊將該任務的結束信息及時反饋到開始的輸入端,當系統中所有任務執行完畢時,本次任務調度結束。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于陜西尚品信息科技有限公司,未經陜西尚品信息科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611113867.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種基于多處理器的任務調度方法
- 下一篇:一種通知管理方法及裝置





