[发明专利]一种基于时间片段的任务调度方法有效
申请号: | 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)所有任务分配完毕后,输出包含所有任务的起始系数
和截止系数
的一个集合
该集合为任务调度表。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于陕西尚品信息科技有限公司,未经陕西尚品信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201611113867.3/,转载请声明来源钻瓜专利网。
- 上一篇:一种基于多处理器的任务调度方法
- 下一篇:一种通知管理方法及装置