CN101387971A - 一种嵌入式软件的任务调整方法和装置 - Google Patents
一种嵌入式软件的任务调整方法和装置 Download PDFInfo
- Publication number
- CN101387971A CN101387971A CNA2008102165677A CN200810216567A CN101387971A CN 101387971 A CN101387971 A CN 101387971A CN A2008102165677 A CNA2008102165677 A CN A2008102165677A CN 200810216567 A CN200810216567 A CN 200810216567A CN 101387971 A CN101387971 A CN 101387971A
- Authority
- CN
- China
- Prior art keywords
- task
- adjusted
- occupation rate
- cpu occupation
- log
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种嵌入式软件的任务调整方法和装置,其方法包括以下步骤:S1.建立一个高优先权的调整任务;S2.所述调整任务接收被调整任务的注册信息,该注册信息至少包括:检测周期、CPU占有率高门限值;S3.所述调整任务按照所述检测周期获取所述被调整任务的运行状态,如果所述被调整任务的CPU占有率高于所述CPU占有率高门限值,则释放该被调整任务一段时间。本发明通过一个高优先级的调整任务实时统计每个任务的运行情况,当被调整任务的CPU占有率超出所设定的CPU占有率高门限值,调整任务就会释放该被调整任务一段时间;保证系统正常运行,提高了系统的可靠性。
Description
技术领域
本发明涉及嵌入式软件领域,尤其涉及的是,一种嵌入式软件的任务调整方法和装置。
背景技术
随着计算机技术特别是嵌入式技术的迅猛发展,嵌入式设备的处理能力日益增强,这就使嵌入式软件的结构越来越复杂,单任务的软件架构显然不能提供这种复杂的信息处理能力,多任务为应用程序对多个离散的现实事件的控制和反应提供了基本的机制。大多数嵌入式系统只有一块CPU,多任务是内核按照一种调度算法交替占有CPU资源,从而运行各个任务,造成一种多个任务并行运行的假象。由于各个任务是交替运行,一种任务的调度管理尤为重要,嵌入式系统为我们提供了多种任务调度算法来调整任务,但有时候并不能满足系统的要求,我们需要设计一些针对系统的调度策略,来保证各个任务合理的利用CPU资源。
公开号为CN101158913的中国专利公开了一种检测任务死循环的方法,其包括以下步骤:在基于优先级任务调度策略的系统中,预先设置最低优先级的死循环检测任务;该系统的时钟中断时,检测未运行所述死循环检测任务的时长是否大于预先设定的阈值,是则判定该系统出现任务死循环。本发明还公开了一种检测任务死循环的系统。使用本发明确保在基于优先级调度策略的系统中,不会发生低优先级任务死循环漏检测的情况,且任务死循环的检测不依赖于系统的任务调度策略。
该技术中的任务检测方式是根据检测空闲任务的CPU占有率来判断一个任务是否是死循环,而在实际过程中可能是由于设计原因或者任务对突发事件的处理,使得这个任务长时间占有CPU资源,但是通过任务调整可以使系统恢复正常,应用上述的专利可能误将可以恢复正常的情况判定为任务的死循环,从而复位系统使得业务中断,使得系统的可靠性降低。
因此,现有技术还存在缺陷,有待于改进和发展。
发明内容
本发明解决的技术问题是提供一种嵌入式软件的任务调整方法和装置,该方法和装置能够提高系统的可靠性。
为解决上述技术问题,本发明采用以下方案:
一种嵌入式软件的任务调整方法,包括以下步骤:S1、建立一个高优先权的调整任务;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、第二被调整任务Tl、第三被调整任务Tc入口处分别接受每个被调整任务的注册信息,注册信息包括任务名称、任务优先级、检测周期、CPU占有率高门限值和CPU占有率低门限值,表示此任务受控于调整任务;见附图1;
400、在第一被调整任务Ts、第二被调整任务Tl、第三被调整任务Tc运行过程中,到检测周期时,被调整任务分别向结构体写信息,写入的信息即为该被调整任务的运行状态,表示该被调整任务正在运行;参见附图2;
500、调整任务Tm的定时器周期到,调整任务Tm检测结构体,根据注册的信息和每个被调整任务运行情况对每个被调整任务的状态进行分析,分析过程如下,见图3:
如果判断被调整任务运行频率超过CPU占有率高门限值,则执行步骤600;
如果判断被调整任务运行频率低于CPU占有率低门限值,则执行步骤700;
同时,用计数器记录两种调整的执行次数,如果每种情况连续出现5次(经验值)调整,则进行系统软复位,任务重跑,业务不中断,见图4;如果没有任务调整,转入步骤300,计数器清零。
600、释放该被调整任务系统资源10ms(经验值),将资源分配给其他被调整任务,转入步骤400;
700、计算每个被调整任务的资源占有率,将CPU占有率较高且低优先级的另一被调整任务休眠10ms(经验值),将另一被调整任务休眠所述释放的资源分配给该被调整任务,转入步骤400。
本发明还提供一种嵌入式软件的任务调整装置,包括:注册模块、检测模块、调整模块、计数器、复位模块。
注册模块用于记录每个任务的注册信息,该注册信息包括:任务名称、任务优先级、检测周期、CPU占有率高低门限值。检测模块用于按照所述检测周期获得所述任务的CPU占有率。调整模块用于将CPU占有率超过其高门限值的任务休眠,并将休眠所释放的资源分配给CPU占有率低于其低门限值的另一任务。计数器与调整模块连接,用于记录调整模块执行调整的次数。复位模块与计数器连接,用于根据所述次数对系统发出软复位指令。
采用本发明所述方法能在嵌入式系统中,实时监控每个任务的运行情况,根据每个任务的运行情况来动态调整任务占用的资源。使用相对简单的方法动态调节各个任务的使用资源的频率,有效的防止有的任务被频繁调度而有的任务得不到执行时间,并在多次调整无效的情况下自动复位系统,达到任务间资源占用的平衡,提高了系统的可靠性。
应当理解的是,以上所提供的具体实施方式只是对本发明的说明,而不应当理解为对本发明的限制,对本领域的普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应为本发明所揭示的原理和特征,均属本发明的保护范围。
Claims (9)
1、一种嵌入式软件的任务调整方法,包括以下步骤:
S1、建立一个高优先权的调整任务;
S2、所述调整任务接收被调整任务的注册信息,该注册信息至少包括:检测周期、CPU占有率高门限值;
S3、所述调整任务按照所述检测周期获取所述被调整任务的运行状态,如果所述被调整任务的CPU占有率高于所述CPU占有率高门限值,则释放该被调整任务一段时间。
2、根据权利要求1所述的方法,其特征在于,所述注册信息包括CPU占有率低门限值;所述步骤S3还包括:如果所述被调整任务的CPU占有率低于所述CPU占有率低门限值,则给该被调整任务分配资源。
3、根据权利要求2所述的方法,其特征在于,所述注册信息包括任务优先级;所述步骤S3包括:所述资源由CPU占有率较高且优先级较低的另一被调整任务释放。
4、根据权利要求3所述的方法,其特征在于,将所述另一被调整任务休眠10ms。
5、根据权利要求1或2所述的方法,其特征在于,所述步骤S3还包括:如果多次调整无效,系统软复位,业务不中断。
6、根据权利要求1所述的方法,其特征在于,所述调整次数为五次。
7、根据权利要求1所述的方法,其特征在于,所述一段时间为10ms。
8、一种嵌入式软件的任务调整装置,其特征在于,包括:
注册模块,用于记录每个任务的注册信息,该注册信息包括:检测周期、CPU占有率高低门限值;
检测模块,用于按照所述检测周期获得所述任务的CPU占有率;
调整模块,用于将CPU占有率超过其高门限值的任务休眠,并将休眠所释放的资源分配给CPU占有率低于其低门限值的另一任务。
9、根据权利要求8所述的装置,其特征在于,所述装置还包括:与调整模块连接的计数器,用于记录调整模块执行调整的次数;与该计数器连接的复位模块,用于根据所述次数对系统发出软复位指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008102165677A CN101387971A (zh) | 2008-09-26 | 2008-09-26 | 一种嵌入式软件的任务调整方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008102165677A CN101387971A (zh) | 2008-09-26 | 2008-09-26 | 一种嵌入式软件的任务调整方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101387971A true CN101387971A (zh) | 2009-03-18 |
Family
ID=40477403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008102165677A Pending CN101387971A (zh) | 2008-09-26 | 2008-09-26 | 一种嵌入式软件的任务调整方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101387971A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937371A (zh) * | 2010-08-27 | 2011-01-05 | 北京星网锐捷网络技术有限公司 | 一种嵌入式系统中监控任务执行状态的方法及装置 |
CN101943944A (zh) * | 2010-09-15 | 2011-01-12 | 中国人民解放军国防科学技术大学 | 一种基于空闲历史信息的计算阵列节能方法 |
CN102779066A (zh) * | 2012-06-14 | 2012-11-14 | 中国电子科技集团公司第四十一研究所 | 一种减少杀毒软件对测试仪器运行效率影响的方法 |
CN101777009B (zh) * | 2009-11-30 | 2012-12-19 | 英业达股份有限公司 | 应用程序的负载控管方法 |
CN102880516A (zh) * | 2012-09-13 | 2013-01-16 | 广东欧珀移动通信有限公司 | 一种移动终端调整输入指令的响应速度的方法及系统 |
CN102929383A (zh) * | 2012-11-06 | 2013-02-13 | 山东大学 | 一种通过cpu动态调频技术降低嵌入式系统功耗的方法 |
CN104021046A (zh) * | 2014-05-29 | 2014-09-03 | 深圳市深信服电子科技有限公司 | 处理应用的方法和装置 |
CN104038358A (zh) * | 2013-03-06 | 2014-09-10 | 中兴通讯股份有限公司 | 一种内容调度方法及内容调度装置 |
CN104111876A (zh) * | 2014-07-10 | 2014-10-22 | 深圳供电局有限公司 | 一种基于Oracle资源计划的动态资源管理装置及方法 |
CN104572019A (zh) * | 2014-12-30 | 2015-04-29 | 浪潮(北京)电子信息产业有限公司 | 一种巡查任务的方法和装置 |
CN105491448A (zh) * | 2015-12-07 | 2016-04-13 | 广州华多网络科技有限公司 | 一种动画数据播放方法以及装置 |
CN105786502A (zh) * | 2016-02-26 | 2016-07-20 | 成都雅骏新能源汽车科技股份有限公司 | 一种调度式嵌入式应用软件架构及其实现方法 |
CN105898049A (zh) * | 2016-04-01 | 2016-08-24 | 乐视控股(北京)有限公司 | 一种接收短信的方法及装置 |
CN106033371A (zh) * | 2015-03-13 | 2016-10-19 | 杭州海康威视数字技术股份有限公司 | 一种视频分析任务的调度方法及系统 |
CN104965763B (zh) * | 2015-07-21 | 2019-03-15 | 国家计算机网络与信息安全管理中心 | 一种老化感知的任务调度系统 |
CN112835773A (zh) * | 2019-11-25 | 2021-05-25 | 合肥欣奕华智能机器有限公司 | 一种操作系统中任务运行实时性的评估方法及装置 |
CN117806807A (zh) * | 2024-02-29 | 2024-04-02 | 双一力(宁波)电池有限公司 | 任务调度方法、装置、电子设备和计算机可读存储介质 |
-
2008
- 2008-09-26 CN CNA2008102165677A patent/CN101387971A/zh active Pending
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777009B (zh) * | 2009-11-30 | 2012-12-19 | 英业达股份有限公司 | 应用程序的负载控管方法 |
CN101937371A (zh) * | 2010-08-27 | 2011-01-05 | 北京星网锐捷网络技术有限公司 | 一种嵌入式系统中监控任务执行状态的方法及装置 |
CN101943944A (zh) * | 2010-09-15 | 2011-01-12 | 中国人民解放军国防科学技术大学 | 一种基于空闲历史信息的计算阵列节能方法 |
CN102779066A (zh) * | 2012-06-14 | 2012-11-14 | 中国电子科技集团公司第四十一研究所 | 一种减少杀毒软件对测试仪器运行效率影响的方法 |
CN102880516A (zh) * | 2012-09-13 | 2013-01-16 | 广东欧珀移动通信有限公司 | 一种移动终端调整输入指令的响应速度的方法及系统 |
CN102880516B (zh) * | 2012-09-13 | 2016-09-28 | 广东欧珀移动通信有限公司 | 一种移动终端调整输入指令的响应速度的方法及系统 |
CN102929383A (zh) * | 2012-11-06 | 2013-02-13 | 山东大学 | 一种通过cpu动态调频技术降低嵌入式系统功耗的方法 |
CN104038358A (zh) * | 2013-03-06 | 2014-09-10 | 中兴通讯股份有限公司 | 一种内容调度方法及内容调度装置 |
CN104038358B (zh) * | 2013-03-06 | 2019-01-15 | 中兴通讯股份有限公司 | 一种内容调度方法及内容调度装置 |
CN104021046A (zh) * | 2014-05-29 | 2014-09-03 | 深圳市深信服电子科技有限公司 | 处理应用的方法和装置 |
CN104111876A (zh) * | 2014-07-10 | 2014-10-22 | 深圳供电局有限公司 | 一种基于Oracle资源计划的动态资源管理装置及方法 |
CN104572019A (zh) * | 2014-12-30 | 2015-04-29 | 浪潮(北京)电子信息产业有限公司 | 一种巡查任务的方法和装置 |
CN104572019B (zh) * | 2014-12-30 | 2017-11-10 | 浪潮(北京)电子信息产业有限公司 | 一种巡查任务的方法和装置 |
CN106033371B (zh) * | 2015-03-13 | 2019-06-21 | 杭州海康威视数字技术股份有限公司 | 一种视频分析任务的调度方法及系统 |
CN106033371A (zh) * | 2015-03-13 | 2016-10-19 | 杭州海康威视数字技术股份有限公司 | 一种视频分析任务的调度方法及系统 |
CN104965763B (zh) * | 2015-07-21 | 2019-03-15 | 国家计算机网络与信息安全管理中心 | 一种老化感知的任务调度系统 |
CN105491448B (zh) * | 2015-12-07 | 2018-11-23 | 广州华多网络科技有限公司 | 一种动画数据播放方法以及装置 |
CN105491448A (zh) * | 2015-12-07 | 2016-04-13 | 广州华多网络科技有限公司 | 一种动画数据播放方法以及装置 |
CN105786502A (zh) * | 2016-02-26 | 2016-07-20 | 成都雅骏新能源汽车科技股份有限公司 | 一种调度式嵌入式应用软件架构及其实现方法 |
CN105786502B (zh) * | 2016-02-26 | 2019-09-03 | 成都雅骏新能源汽车科技股份有限公司 | 一种调度式嵌入式应用软件架构及其实现方法 |
CN105898049A (zh) * | 2016-04-01 | 2016-08-24 | 乐视控股(北京)有限公司 | 一种接收短信的方法及装置 |
CN112835773A (zh) * | 2019-11-25 | 2021-05-25 | 合肥欣奕华智能机器有限公司 | 一种操作系统中任务运行实时性的评估方法及装置 |
CN112835773B (zh) * | 2019-11-25 | 2023-08-11 | 合肥欣奕华智能机器股份有限公司 | 一种操作系统中任务运行实时性的评估方法及装置 |
CN117806807A (zh) * | 2024-02-29 | 2024-04-02 | 双一力(宁波)电池有限公司 | 任务调度方法、装置、电子设备和计算机可读存储介质 |
CN117806807B (zh) * | 2024-02-29 | 2024-05-17 | 双一力(宁波)电池有限公司 | 任务调度方法、装置、电子设备和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101387971A (zh) | 一种嵌入式软件的任务调整方法和装置 | |
CN105302637B (zh) | 系统进程运行异常引起卡顿的恢复方法、装置及移动终端 | |
CN100555228C (zh) | 一种嵌入式linux应用进程的监控方法 | |
CN109918141B (zh) | 线程执行方法、装置、终端及存储介质 | |
CN100359481C (zh) | 多任务系统的异常监控装置及其方法 | |
CN102984029B (zh) | 应用于分布式系统的心跳检测装置和方法、网络设备 | |
CN104601492A (zh) | 一种nfv架构下进行业务流控的方法及装置 | |
CN101329655B (zh) | 一种内存管理方法和内存管理装置 | |
CN101216798A (zh) | 一种基于看门狗和定时器的周期任务可靠性的监控方法 | |
CN101853191B (zh) | 检测操作系统中任务死循环的方法及系统 | |
CN103744727A (zh) | 一种启动服务的方法、装置和智能设备 | |
CN101739305A (zh) | 操作系统内核级实时看门狗监控装置及其监控方法 | |
CN109117280A (zh) | 电子装置及其限制进程间通信的方法、存储介质 | |
CN105634502A (zh) | 基于状态机的按键扫描的实现方法 | |
CN101561778A (zh) | 一种检测多任务操作系统任务死循环的方法 | |
CN109117279A (zh) | 电子装置及其限制进程间通信的方法、存储介质 | |
CN1988684B (zh) | 网络进程管理方法及装置 | |
CN107506286A (zh) | Cpu和内存块的自动上下线方法和系统 | |
CN101458640B (zh) | 可监控多线程状态的系统及其监控方法 | |
CN102915692A (zh) | 屏幕亮度调整方法、装置及移动设备 | |
US9958928B2 (en) | Method and apparatus for controlling an operating mode of a processing module | |
CN1984119A (zh) | 一种利用时分技术实现流量控制的方法 | |
CN101539878A (zh) | 在操作系统下加快oracle进程监控回收资源的方法 | |
CN105610633A (zh) | 一种通信设备中实时性能自采样系统及方法 | |
CN101349975A (zh) | 实现中断底半部机制的方法及嵌入式系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20090318 |