[发明专利]一种实时系统任务调度方法无效
申请号: | 200710176704.4 | 申请日: | 2007-11-01 |
公开(公告)号: | CN101145112A | 公开(公告)日: | 2008-03-19 |
发明(设计)人: | 侯亚荣;张书杰;李健;熊璋 | 申请(专利权)人: | 北京工业大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 北京汇泽知识产权代理有限公司 | 代理人: | 张颖玲 |
地址: | 100022*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实时 系统 任务 调度 方法 | ||
技术领域
本发明涉及任务调度,特别是涉及一种实时系统中的任务调度方法。
背景技术
实时系统是随着计算机应用于实时控制和实时信息处理领域中而发展起来的,它要求计算机对于外来信息能以足够快的速度进行处理,并在被控制对象允许的时间范围内做出快速响应,其响应时间要求在秒级、毫秒级甚至微秒级或更小。实时系统的主要特征之一是响应的即时性,所谓响应的即时性是指要在时间约束之内完成运算。其中,时间约束是指截止时间或称时限,是实时系统给出处理结果的最迟可以接受的时间。
在实时系统中,任务调度方法是直接影响实时系统响应即时性的关键因素,因而对任务调度方法的研究具有十分重要的意义。目前,实时系统中使用最普遍的是最早时限优先算法(EDF,Earliest Deadline First),EDF算法是广泛使用的最具代表性的一种实时调度算法。
具体来说,EDF调度的基本工作原理是:优先处理最紧迫任务,每当有资源空闲下来时,调度程序就选择具有最早时限的任务,并赋给所选任务所需的资源,使所选任务获得运行权。EDF调度已被证明对基于时限标准的单资源分配来说是最优的,但是,针对多个相同资源的分配问题,EDF调度却无法实现整体最优化。例如,一个多CPU多任务调度系统,各CPU的主频不同,各任务的运算量不同,如果采用EDF调度算法,则很有可能为具有最早时限但运算量大的任务分配一个最先空闲下来的低主频CPU;而下一个拥有最早时限的任务,尽管运算量小,却被分配一个高主频CPU。因此,EDF调度并不能实现多资源多任务实时系统的最优调度。
发明内容
有鉴于此,本发明的主要目的在于提供一种实时系统任务调度方法,能实现对多资源多任务的最优调度,提高资源利用率和时限内到达任务比例。
为达到上述目的,本发明的技术方案是这样实现的:
一种实时系统中的任务调度方法,包括:
A、根据时限和运算量对待调度任务进行顺序排列;
B、有空闲资源时,按排列顺序为一个或一个以上待调度任务分配资源,其中,为一个以上待调度任务分配资源时,所分配资源的多个任务间最大时延最小。
其中,步骤A中,先根据待调度任务的时限先后,将时限早的任务排在任务调度队列前边;对存在的多个时限相同的任务,再按任务运算量大小,将运算量大的任务排在任务调度队列前边;对多个时限和运算量均相同的任务,将所述任务随机排列。
上述方案中,步骤B所述为待调度任务分配资源具体包括:
B1、初始化任务调度队列;
B2、确定当前要调度的一个或一个以上任务;
B3、为步骤B2所确定的当前要调度任务分配资源,且所分配资源的多个任务间满足其中,Uk为当前调度的任务,为确定要分配的资源;
B4、根据当前资源分配情况及资源恢复空闲情况,更新空闲资源集合;
B5、根据当前的任务调度情况,更新任务调度队列;
B6、判断是否调度完所有任务,如果调度完,则结束当前任务调度流程;如果未调度完,则返回步骤B2。
其中,所述每个任务调度队列与每个可分配资源一一对应。
其中,步骤B4中所述更新空闲资源集合具体为:从空闲资源集合中删除当前被占用的资源,并将当前恢复空闲的资源加入空闲资源集合中。步骤B5所述更新任务调度队列为:将当前所分配的任务Uk添加到任务调度队列中。步骤B6中所述判断是否调度完所有任务为:判断未调度任务队列是否为空,如果为空,则调度完所有任务;否则,未调度完。
本发明所提供的实时系统任务调度方法,将所有需调度任务按时限先后顺序排列,同时,对多个时限相同的任务,按任务运算量大小排列,运算量大的排在任务调度队列前面;这样,在有空闲资源时,按任务调度队列的排序分配资源,且在对多个任务进行资源分配时采用聚类时延最小策略,如此,不仅能保证多个同时调度的任务的最大时延最小化;而且打破了单资源分配最优的局限性,进而提高了资源利用率和时限内到达任务比例等性能指标,为实时系统任务调度提供了一种可实现整体最优化的方法。
具体实施方式
本发明的任务调度方法首先对实时系统中的任务进行排队,之后再对经过排队的任务进行调度。具体的,所述对实时系统中的任务进行排队一般采用如下策略:根据待调度任务的时限先后,时限早的任务排在任务调度队列前边;若存在多个任务时限相同,则按照任务运算量大小,运算量大的任务排在任务调度队列前边;若多个任务的时限和运算量均相同,则将这些任务随机排列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710176704.4/2.html,转载请声明来源钻瓜专利网。