一种比例空闲时间分配的周期任务低功耗调度方法技术

技术编号:20329025 阅读:37 留言:0更新日期:2019-02-13 05:40
本发明专利技术公开一种比例空闲时间分配的周期任务低功耗调度方法,其步骤如下:周期任务集开始调度之前,计算周期任务集的总利用率Utot,并以此计算离线速度Sof=max{Scrit,Utot};根据最早截止期限优先原则EDF对周期任务集进行排序并插入就绪队列中;第i个周期任务Ti在t时刻完成时,重新计算Ti的下一个释放时间,并回收空闲时间,按照就绪队列中任务的最坏情况行执行时间(WCET)比例给每个就绪任务分配空闲时间。当就绪队列为空且空闲时间大于转换开销时,关闭处理器以节约能耗。本方法可以在保障周期任务可调度性的前提下,尽可能的降低处理器能耗,提高系统整体可靠性。仿真实验验证了本方法有效。

【技术实现步骤摘要】
一种比例空闲时间分配的周期任务低功耗调度方法
本专利技术涉及实时系统周期性任务模型的实时调度,具体的说是一种比例空闲时间分配的周期任务低功耗调度方法。
技术介绍
随着超大规模集成电路技术发展,处理器的能耗也越来越大。实时系统是任务的截止时间有严格约束的调度系统,处理器功耗的增加势必导致不稳定性,因此有效降低处理器能耗是实时调度算法需要考虑的问题。实时系统调度分为周期性任务和偶发任务,其中周期性任务模型是实时系统中一种重要的任务模型,特点是任务实例呈周期性到来。目前针对周期性任务集的调度算法主要采用DVS技术,任务的实际执行时间往往小于它的最坏情况下执行时间,从而产生空闲时间。DVS技术可以回收空闲时间,分配给就绪队列中未完成的任务,降低其速度从而降低能耗。目前处理器的功耗分为三部分:静态功耗Ps,与速度无关的功耗Pind和与速度相关的Pdep,Pind主要来自漏电电流功耗,Pdep主要来自动态功耗。处理器以速度S运行的动态功耗Pdep可表示为Pdep=Cef·Sm,其中Cef代表电路中的负载电容,S为处理器的运行速度,m是和处理器功耗无关的常指数(2≤m≤3)。因此,处理器的总功耗可以表示为:P=Ps+h(Pind+Pdep)=Ps+h(Pind+Cef·Sm),其中系数h为常量,当h=1,表示有任务在运行;否则h=0。处理器动态功耗和速度成约二次方关系,动态功耗因速度降低而大幅度降低。但是低速度势必会导致任务的实际执行时间延长,从而增加静态功耗。为保证系统总功耗最优,现有研究指出了使得系统能耗最低的关键速度,指出超过或低于关键速度,处理器的功耗会增加,其中关键速度假定处理器能够提供连续的速度,并且对速度进行归一化,使得处理器提供的速度范围为[Smin,1],其中Smin为处理器的最低运行速度。处理器有三个状态:关闭状态,活跃状态,空闲状态,当处理器处于关闭状态时不消耗能量。若采用DPM技术,考虑到关闭处理器所需的开销,令E0为空闲状态切换到关闭状态所需的能耗开销,Pidle为空闲状态的功耗,则关闭处理器的时间开销当空闲时间大于t0,且没有就绪任务时可以选择关闭处理器。周期任务是实时任务的一种,其特点为两个连续的任务实例的释放间隔为固定的常数。本模型考虑存在n个相互独立的周期任务的硬实时系统,采用最早截止期限优先策略(EDF)调度该周期任务集T。每个周期任务Ti用二元组(pi,ci)来表示,pi为Ti的周期,ci为Ti在最坏情况下的执行时间(WCET),任务的相对截止时限等于其周期。这里用ri和di表示任务Ti的释放时间和截止时限,用aci和Ti,j分别表示Ti的实际执行时间和其第j个任务实例,用Utot表示整个任务集的利用率,
技术实现思路
针对目前周期任务模型的DVS节能算法空闲时间分配策略均存在不足,本专利技术提出一种基于WCET比例的空闲时间分配策略,并结合DVS以及DPM技术,提出一种比例空闲时间分配的周期任务低功耗调度算法。本专利技术为实现上述目的所采用的技术方案是:一种比例空闲时间分配的周期任务低功耗调度方法,包括以下步骤:步骤1:周期任务集T{T1,T2,T3…Ti…Tn}调度之前,计算周期任务在离线状态下的最佳运行速度;在实时调度器上设置任务就绪队列、任务到来队列;定义集合RD(Ti,t)为t时刻就绪队列中的任务集合;其中,t表示时刻,Ti表示第i个周期任务,且就绪任务集合按照任务的优先级高低排列;所述任务到来队列包含已经运行完毕但下一个实例还没到来的任务;步骤2:第i个周期任务Ti(pi,ci)在t时刻释放时,根据最早截止期限EDF优先顺序将周期任务Ti(pi,ci)插入任务就绪队列中,并初始设置remi(t)=wi(t)=ci,Si=Sof;其中,pi是Ti的周期,ci是Ti的最坏情况下执行时间,remi(t)是周期任务Ti在时刻t的可利用执行时间,wi(t)是周期任务Ti在时刻t的剩余最坏情况下执行时间,Si是Ti的执行速度;若系统此时存在空闲时间,则Ti获得这些空闲时间,重新计算remi(t)和Si;当就绪队列非空时,始终调度队首任务执行;步骤3:当执行周期任务中有更高优先级任务就绪时,发生抢占调度,保留被抢占任务的信息,将被抢占任务按最早截止期限EDF优先顺序重新放入就绪队列,重新调度队首任务执行;步骤4:当某个周期任务完成时,回收该任务的空闲时间,若任务就绪队列非空,将系统空闲时间按WCET比例分配给就绪队列中每个任务;重新计算就绪队列中每个任务的执行速度,若执行速度小于关键速度,设置当前执行速度为关键速度;步骤5:如果就绪队列为空且系统空闲时间大于关闭处理器的开销时,则关闭处理器直到新的任务到达。所述步骤1中的周期任务在离线状态下的最佳运行速度为:Sof=max{Scrit,Utot}其中,Scrit是关键速度,Utot是周期任务集的利用率,表示为:n为任务集中周期任务的个数,第i个周期任务定义为Ti(pi,ci)。所述步骤2中的根据最早截止期限EDF优先顺序将周期任务Ti(pi,ci)插入任务就绪队列中为根据任务的截止时间动态分配任务的优先级;截止时间越靠前,优先级越高;其中,周期任务Ti的截止时限di计算公式为di=ri+pi,其中ri是周期任务Ti该次的到达时间。所述步骤2中的若系统此时存在空闲时间,则Ti获得这些空闲时间,重新计算remi(t)和Si包括:若slack_time>0,则将slack_time增加到remi(t),其中,slack_time是系统当前可用空闲时间,初始时为0;若si<scrit,则令si=scrit。所述步骤3中的当执行周期任务中有更高优先级任务就绪时,发生抢占调度,保留被抢占任务的信息,将被抢占任务按EDF优先级顺序重新放入就绪队列,重新调度队首任务执行,包括:随着队首任务Tf的执行,remf(t)和wf(t)逐渐减少,若正在执行的任务Tf的EDF优先级低于新到来的就绪任务,则发生抢占,则保留remf(t),wf(t)的值;将任务Tf按照最早截止期限EDF优先顺序重新插入任务就绪队列,调度就绪队列队首任务执行,其中,remf(t)和wf(t)分别是Tf在时刻t的可利用执行时间和剩余最坏情况下执行时间。所述步骤4中的当某个任务完成时,回收该任务的空闲时间,若任务就绪队列非空,将空闲时间按WCET比例分配给就绪队列中每个任务,包括:Tf运行完毕时,设置wf=0,Tf移出任务就绪队列,加入任务到来队列;将pf增加到rf作为下次Tf的释放时间,将remf增加到当前系统可用的空闲时间slack_time;其中,pf是Tf的周期,slack_time初始值为0;定义HC(Ti,t,Tb)为当前t时刻就绪队列中优先级小于最近已完成任务Tb的任务集合,若此时HC(Ti,t,Tb)不为空,则将增加到remi(t),增加后的remi(t)作为集合HC(Ti,t,Tb)中的每一个任务Ti的可利用执行时间;其中,Tk是集合HC(Ti,t,Tb)中的任务,wk(t)是Tk在时刻t的剩余最坏情况下执行时间。所述步骤4中的重新计算就绪队列中每个任务的执行速度,若执行速度小于关键速度,设置当前执行速度为关键速度,包括:重新计算Ti的执行本文档来自技高网
...

【技术保护点】
1.一种比例空闲时间分配的周期任务低功耗调度方法,其特征在于,包括以下步骤:步骤1:周期任务集T{T1,T2,T3…Ti…Tn}调度之前,计算周期任务在离线状态下的最佳运行速度;在实时调度器上设置任务就绪队列、任务到来队列;定义集合RD(Ti,t)为t时刻就绪队列中的任务集合;其中,t表示时刻,Ti表示第i个周期任务,且就绪任务集合按照任务的优先级高低排列;所述任务到来队列包含已经运行完毕但下一个实例还没到来的任务;步骤2:第i个周期任务Ti(pi,ci)在t时刻释放时,根据最早截止期限EDF优先顺序将周期任务Ti(pi,ci)插入任务就绪队列中,并初始设置remi(t)=wi(t)=ci,Si=Sof;其中,pi是Ti的周期,ci是Ti的最坏情况下执行时间,remi(t)是周期任务Ti在时刻t的可利用执行时间,wi(t)是周期任务Ti在时刻t的剩余最坏情况下执行时间,Si是Ti的执行速度;若系统此时存在空闲时间,则Ti获得这些空闲时间,重新计算remi(t)和Si;当就绪队列非空时,始终调度队首任务执行;步骤3:当执行周期任务中有更高优先级任务就绪时,发生抢占调度,保留被抢占任务的信息,将被抢占任务按最早截止期限EDF优先顺序重新放入就绪队列,重新调度队首任务执行;步骤4:当某个周期任务完成时,回收该任务的空闲时间,若任务就绪队列非空,将系统空闲时间按WCET比例分配给就绪队列中每个任务;重新计算就绪队列中每个任务的执行速度,若执行速度小于关键速度,设置当前执行速度为关键速度;步骤5:如果就绪队列为空且系统空闲时间大于关闭处理器的开销时,则关闭处理器直到新的任务到达。...

【技术特征摘要】
1.一种比例空闲时间分配的周期任务低功耗调度方法,其特征在于,包括以下步骤:步骤1:周期任务集T{T1,T2,T3…Ti…Tn}调度之前,计算周期任务在离线状态下的最佳运行速度;在实时调度器上设置任务就绪队列、任务到来队列;定义集合RD(Ti,t)为t时刻就绪队列中的任务集合;其中,t表示时刻,Ti表示第i个周期任务,且就绪任务集合按照任务的优先级高低排列;所述任务到来队列包含已经运行完毕但下一个实例还没到来的任务;步骤2:第i个周期任务Ti(pi,ci)在t时刻释放时,根据最早截止期限EDF优先顺序将周期任务Ti(pi,ci)插入任务就绪队列中,并初始设置remi(t)=wi(t)=ci,Si=Sof;其中,pi是Ti的周期,ci是Ti的最坏情况下执行时间,remi(t)是周期任务Ti在时刻t的可利用执行时间,wi(t)是周期任务Ti在时刻t的剩余最坏情况下执行时间,Si是Ti的执行速度;若系统此时存在空闲时间,则Ti获得这些空闲时间,重新计算remi(t)和Si;当就绪队列非空时,始终调度队首任务执行;步骤3:当执行周期任务中有更高优先级任务就绪时,发生抢占调度,保留被抢占任务的信息,将被抢占任务按最早截止期限EDF优先顺序重新放入就绪队列,重新调度队首任务执行;步骤4:当某个周期任务完成时,回收该任务的空闲时间,若任务就绪队列非空,将系统空闲时间按WCET比例分配给就绪队列中每个任务;重新计算就绪队列中每个任务的执行速度,若执行速度小于关键速度,设置当前执行速度为关键速度;步骤5:如果就绪队列为空且系统空闲时间大于关闭处理器的开销时,则关闭处理器直到新的任务到达。2.按照权利要求1所述一种比例空闲时间分配的周期任务低功耗调度方法,其特征在于,所述步骤1中的周期任务在离线状态下的最佳运行速度为:Sof=max{Scrit,Utot}其中,Scrit是关键速度,Utot是周期任务集的利用率,表示为:n为任务集中周期任务的个数,第i个周期任务定义为Ti(pi,ci)。3.按照权利要求1所述一种比例空闲时间分配的周期任务低功耗调度方法,其特征在于,所述步骤2中的根据最早截止期限EDF优先顺序将周期任务Ti(pi,ci)插入任务就绪队列中为根据任务的截止时间动态分配任务的优先级;截止时间越靠前,优先级越高;其中,周期任务Ti的截止时限di计算公式为di=ri+pi,其中ri是周期任务Ti该次的到达时间。4.按照权利要求1所述一种比例空闲时间分配的周期任务低功耗调度方法,其特征在于,所述步骤2中的若系统此时存在空闲时间,则Ti获得这些空闲时间,重新计算remi(t)和Si包括:若slack_time&...

【专利技术属性】
技术研发人员:郭锐锋吴昊天胡毅彭阿珍邓昌义
申请(专利权)人:沈阳高精数控智能技术股份有限公司
类型:发明
国别省市:辽宁,21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1