发明名称 一种任务优先级动态调度算法
摘要 本发明涉及实时系统中的任务调度技术领域,具体涉及一种任务优先级动态调度算法。本发明的目的在于提供一种任务优先级动态调度算法,该算法可以克服在系统超负荷的情况动态优先级算法的截止期错失率急剧增加的问题,减小任务平均延迟,增加调度成功率,并能提高任务的公平性,对于执行时间E较大的任务来说不会出现过高截止期限错失率。
申请公布号 CN101339521B 申请公布日期 2011.04.20
申请号 CN200810048592.9 申请日期 2008.07.28
申请人 华中科技大学 发明人 余鑫;程飞
分类号 G06F9/46(2006.01)I 主分类号 G06F9/46(2006.01)I
代理机构 北京市德权律师事务所 11302 代理人 张伟
主权项 1.一种任务优先级动态调度算法,其特征在于:包括如下步骤:(1)根据被调度的任务是否在本周期内完成,将该任务的状态分别标记为active和inactive,计算resume_time作为该任务下一次释放时间;(2)作业调度时刻到来时的作业调度的具体步骤为:步骤a、获取当前时间,并将时间保存到now变量中;获取当前任务的状态;步骤b、循环遍历任务队列,依次找出任务队列中的任务的状态state为inactive的任务;对遍历得到的inactive的任务的resume_time和当前时间变量now进行比较;判断resume_time是否大于当前时间变量,如果是则继续遍历任务队列直到遍历完毕;如果否则设置该任务T的状态为active,并更新任务优先级和下次释放时间,完成后继续遍历任务队列直到遍历完毕;对于任意一个没有完成本周期工作的任务,其优先级计算方法为:<img file="FSB00000172489400011.GIF" wi="696" he="100" />式(1)对于任意一个完成本周期工作的任务,其优先级计算方法为:<img file="FSB00000172489400012.GIF" wi="625" he="99" />式(2)其中,t为当前时间,p为该任务周期,d为该任务周期内截止期限,e为周期内期望执行时间,f是一个可调的系数,0<f<1,vdeadline最小的任务优先级最高;对于一个没有完成本周期工作的任务,其任务状态一直为active;优先级都按照式(1)来计算;且在该任务每个周期的开始都会更新优先级,并按照这个优先级进行调度;对于一个完成本周期工作的任务,其任务状态设置为inactive,其任务的优先级按照式(2)重新计算,其下一次释放时间计算方法为<img file="FSB00000172489400013.GIF" wi="584" he="100" />式(3)对于一个没有完成本周期工作,且延迟至下一周期的任务,此时下一个周期将会丢失,其resume_time将会按照式(3)更新;步骤c、完成遍历后调用动态优先级调度器进行调度;(3)作业完成本周期工作转入睡眠时的作业调度的具体步骤为:步骤a、设置当前任务的状态为inactive;步骤b、调用动态优先级调度器进行调度;(4)动态优先级调度器执行最早截止期优先算法,在该算法中加入期望执行时间e的因素,截止期相同时,期望执行时间比较大的任务,优先级更高。
地址 430074 湖北省武汉市洪山区珞瑜路1037号