一种嵌入式软件的任务调整方法和装置的制作方法

文档序号:6470276阅读:174来源:国知局
专利名称:一种嵌入式软件的任务调整方法和装置的制作方法
技术领域
本发明涉及嵌入式软件领域,尤其涉及的是, 一种嵌入式软件的任务 调整方法和装置。
背景技术
随着计算机技术特别是嵌入式技术的迅猛发展,嵌入式设备的处理能 力日益增强,这就使嵌入式软件的结构越来越复杂,单任务的软件架构显 然不能提供这种复杂的信息处理能力,多任务为应用程序对多个离散的现
实事件的控制和反应提供了基本的机制。大多数嵌入式系统只有一块CPU, 多任务是内核按照一种调度算法交替占有CPU资源,从而运行各个任务,
造成一种多个任务并行运行的假象。由于各个任务是交替运行, 一种任务 的调度管理尤为重要,嵌入式系统为我们提供了多种任务调度算法来调整 任务,但有时候并不能满足系统的要求,我们需要设计一些针对系统的调
度策略,来保证各个任务合理的利用CPU资源。
公开号为CN101158913的中国专利公开了一种检测任务死循环的方 法,其包括以下步骤在基于优先级任务调度策略的系统中,预先设置最 低优先级的死循环;险测任务;该系统的时钟中断时,冲企测未运行所述死循 环检测任务的时长是否大于预先设定的阈值,是则判定该系统出现任务死 循环。本发明还公开了一种检测任务死循环的系统。使用本发明确保在基 于优先级调度策略的系统中,不会发生低优先级任务死循环漏检测的情况, 且任务死循环的检测不依赖于系统的任务调度策略。
该技术中的任务检测方式是根据检测空闲任务的CPU占有率来判断一
个任务是否是死循环,而在实际过程中可能是由于设计原因或者任务对突
发事件的处理,使得这个任务长时间占有CPU资源,但是通过任务调整可
以使系统恢复正常,应用上述的专利可能误将可以恢复正常的情况判定为 任务的死循环,从而复位系统使得业务中断,使得系统的可靠性降低。 因此,现有技术还存在缺陷,有待于改进和发展。

发明内容
本发明解决的技术问题是提供 一种嵌入式软件的任务调整方法和装 置,该方法和装置能够提高系统的可靠性。
为解决上述技术问题,本发明采用以下方案
一种嵌入式软件的任务调整方法,包括以下步骤Sl、建立一个高优 先权的调整任务;S2、所述调整任务接收被调整任务的注册信息,该注册 信息至少包括检测周期、CPU占有率高门限值;S3、所述调整任务按照 所述检测周期获取所述被调整任务的运行状态,如果所述被调整任务的 CPU占有率高于所述CPU占有率高门限值,则释放该被调整任务一段时间。
所述的方法,其中,所述注册信息包括CPU占有率低门限值;所述步 骤S3还包括如果所述被调整任务的CPU占有率低于所述CPU占有率低 门限值,则给该被调整任务分配资源。
所述的方法,其中,所述步骤S3包括所述资源由CPU占有率较高 且优先级较低的另 一被调整任务释放。
所述的方法,其中,将所述另一被调整任务休眠10ms。
所述的方法,其中,所述步骤S3还包括如果多次调整无效,系统软 复位,业务不中断。
所述的方法,其中,所述调整次数为五次。
所述的方法,其中,所述一段时间为10ms。
一种嵌入式软件的任务调整装置,包括注册模块,用于记录每个任
务的注册信息,该注册信息包括检测周期、CPU占有率高低门限值;检 测模块,用于按照所述检测周期获得所述任务的CPU占有率;调整模块, 用于将CPU占有率超过其高门限值的任务休眠,并将休眠所释放的资源分 配给CPU占有率低于其低门限值的另一任务。
所述的装置,其中,所述装置还包括与调整模块连接的计数器,用 于记录调整模块执行调整的次数;与该计数器连接的复位模块,用于根据 所述次数对系统发出软复位指令。
与现有技术相比,本发明嵌入式软件的任务调整方法,通过一个高优 先级的调整任务实时统计每个任务的运行情况,当被调整任务的CPU占有 率超出所设定的CPU占有率高门限值,调整任务就会释放该被调整任务一 段时间;保证系统正常运行,提高了系统的可靠性。


图1是本发明的嵌入式软件的任务调整方法中调整任务接收被调整任 务注册信息的示意框图;'
图2是本发明的嵌入式软件的任务调整方法中被调整任务定时通知运 行状态的流程框图3是本发明的嵌入式软件的任务调整方法中判断分析的流程框图4是本发明的嵌入式软件的任务调整方法中监控的流程框图。
具体实施例方式
下面结合具体实施方式
和附图对本发明作进一步详细的描述。 本发明嵌入式软件的任务调整方法和装置的主要思想是首先启动一 个高优先级的调整任务,此调整任务为一个定时任务,随时接受被调整任 务的注册信息,至少包括CPU占有率的高低门限值;每个被调整任务在任 务的入口处向调整任务发注册信息,并定时向调整任务发运行状态;调整
任务根据每个被调整任务申请时的CPU占有率的高低门限值和任务的运行 时的实际CPU占有率对该被调整任务的运行状态进行判断和调整,从而实
现占任务用资源的动态调整。
以下是基于一款集成式SDH设备中的任务调整方法对本发明进行进一 步说明。此设备是一款高度集成的SDH设备,集成了时钟单元、线路单元、 交叉单元等功能块,每个单元以一个或者多个任务的形式运行在系统中, 为了方便描述,在这里表示为第一被调整任务Ts、第二^^皮调整任务T1、第 三被调整任务Tc,为了保证这些任务能够合理的占有资源,在任务调整中 应用了本发明。
100、定义一个结构体,用于存储被调整任务的注册信息;
200、启动一个高优先级的调整任务Tm,任务中嵌入一个定时器,按 照设定的时间进行任务监控;
300、在第一被调整任务Ts、第二被调整任务T1、第三被调整任务Tc 入口处分别接受每个被调整任务的注册信息,注册信息包括任务名称、任 务优先级、检测周期、CPU占有率高门限值和CPU占有率低门限值,表示 此任务受控于调整任务;见附图1;
400、在第一被调整任务Ts、第二被调整任务T1、第三被调整任务Tc 运行过程中,到检测周期时,被调整任务分别向结构体写信息,写入的信 息即为该被调整任务的运行状态,表示该被调整任务正在运行;参见附图2;
500、调整任务Tm的定时器周期到,调整任务Tm检测结构体,根据 注册的信息和每个被调整任务运行情况对每个被调整任务的状态进行分 析,分析过程如下,见图3:
如果判断被调整任务运行频率超过CPU占有率高门限值,则执行步骤
600;
如果判断被调整任务运行频率低f;CPU占有率低门限值,则执行步骤
700;
同时,用计数器记录两种调整的执行次数,如果每种情况连续出现5 次(经验值)调整,则进行系统软复位,任务重跑,业务不中断,见图4; 如果没有任务调整,转入步骤300,计数器清零。
600、释放该被调整任务系统资源10ms (经验值),将资源分配给其他 被调整任务,转入步骤400;
700、计算每个被调整任务的资源占有率,将CPU占有率较高且低优 先级的另一被调整任务休眠10ms(经验值),将另一被调整任务休眠所述 释放的资源分配给该被调整任务,转入步骤400。
本发明还提供一种嵌入式软件的任务调整装置,包括注册模块、检 测模块、调整模块、计数器、复位模块。
注册模块用于记录每个任务的注册信息,该注册信息包括任务名称、 任务优先级、检测周期、CPU占有率高低门限值。检测模块用于按照所述 检测周期获得所述任务的CPU占有率。调整模块用于将CPU占有率超过其 高门限值的任务休眠,并将休眠所释放的资源分配给CPU占有率低于其低 门限值的另一任务。计数器与调整模块连接,用于记录调整模块执行调整 的次数。复位模块与计数器连接,用于根据所述次数对系统发出软复位指 令。
采用本发明所述方法能在嵌入式系统中,实时监控每个任务的运行情 况,根据每个任务的运行情况来动态调整任务占用的资源。使用相对简单 的方法动态调节各个任务的使用资源的频率,有效的防止有的任务被频繁 调度而有的任务得不到执行时间,并在多次调整无效的情况下自动复位系 统,达到任务间资源占用的平4軒,提高了系统的可靠性。
应当理解的是,以上所提供的具体实施方式
只是对本发明的说明,而 不应当理解为对本发明的限制,对本领域的普通技术人员来说,可以根据 上述说明加以改进或变换,而所有这些改进和变换都应为本发明所揭示的 原理和特征,均属本发明的保护范围。
权利要求
1、一种嵌入式软件的任务调整方法,包括以下步骤S1、建立一个高优先权的调整任务;S2、所述调整任务接收被调整任务的注册信息,该注册信息至少包括检测周期、CPU占有率高门限值;S3、所述调整任务按照所述检测周期获取所述被调整任务的运行状态,如果所述被调整任务的CPU占有率高于所述CPU占有率高门限值,则释放该被调整任务一段时间。
2、 根据权利要求1所述的方法,其特征在于,所述注册信息包括CPU 占有率低门限值;所述步骤S3还包括如果所述被调整任务的CPU占有 率低于所述CPU占有率低门限值,则给该被调整任务分配资源。.
3、 根据权利要求2所述的方法,其特征在于,所述注册信息包括任务 优先级;所述步骤S3包括所述资源由CPU占有率较高且优先级较低的 另一被调整任务释放。
4、 根据权利要求3所述的方法,其特征在于,将所述另一被调整任务 ^f木眠10ms。
5、 根据权利要求1或2所述的方法,其特征在于,所述步骤S3还包 括如果多次调整无效,'系统软复位,业务不中断。
6、 根据权利要求1所述的方法,其特征在于,所述调整次数为五次。
7、 根据权利要求1所述的方法,其特征在于,所述一段时间为10ms。
8、 一种嵌入式软件的任务调整装置,其特征在于,包括注册模块,用于记录每个任务的注册信息,该注册信息包括检测周期、CPU占有率高低门限值;检测模块,用于按照所述检测周期获得所述任务的CPU占有率; 调整模块,用于将CPU占有率超过其高门限值的任务休眠,并将休眠所释放的资源分配给CPU占有率低于其低门限值的另 一任务。
9、根据权利要求8所述的装置,其特征在于,所述装置还包括与调 整模块连接的计数器,用于记录调整模块执行调整的次数;与该计数器连 接的复位模块,用于根据所述次数对系统发出软复位指令。
全文摘要
本发明公开了一种嵌入式软件的任务调整方法和装置,其方法包括以下步骤S1.建立一个高优先权的调整任务;S2.所述调整任务接收被调整任务的注册信息,该注册信息至少包括检测周期、CPU占有率高门限值;S3.所述调整任务按照所述检测周期获取所述被调整任务的运行状态,如果所述被调整任务的CPU占有率高于所述CPU占有率高门限值,则释放该被调整任务一段时间。本发明通过一个高优先级的调整任务实时统计每个任务的运行情况,当被调整任务的CPU占有率超出所设定的CPU占有率高门限值,调整任务就会释放该被调整任务一段时间;保证系统正常运行,提高了系统的可靠性。
文档编号G06F9/46GK101387971SQ20081021656
公开日2009年3月18日 申请日期2008年9月26日 优先权日2008年9月26日
发明者强 杜 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1