CN101937371A - 一种嵌入式系统中监控任务执行状态的方法及装置 - Google Patents
一种嵌入式系统中监控任务执行状态的方法及装置 Download PDFInfo
- Publication number
- CN101937371A CN101937371A CN 201010266130 CN201010266130A CN101937371A CN 101937371 A CN101937371 A CN 101937371A CN 201010266130 CN201010266130 CN 201010266130 CN 201010266130 A CN201010266130 A CN 201010266130A CN 101937371 A CN101937371 A CN 101937371A
- Authority
- CN
- China
- Prior art keywords
- task
- counting variable
- control
- lowest priority
- overall counting
- 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
本发明公开了一种嵌入式系统中监控任务执行状态的方法及装置,主要技术方案包括:分别在系统中注册对应最高优先级的任务以及对应最低优先级的任务;其中,所述对应最高优先级的任务用于控制系统中设定的全局计数变量按照设定方式变化,所述对应最低优先级的任务用于控制所述全局计数变量初始化;在所述对应最高优先级的任务控制所述全局计数变量变化后,判断变化后的全局计数变量是否到达设定阈值,若是,则确定对应最低优先级的任务未被正常执行。另一技术方案中,也可以通过喂狗函数代替注册最高优先级的任务。采用该技术方案,能够对嵌入式系统中的任务执行状态进行监控,从而能够确定出系统中任务的调度是否正常。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种嵌入式系统中监控任务执行状态的方法及装置。
背景技术
嵌入式系统被定义为:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
嵌入式系统的特点是基本具备PC操作系统的所有功能,任务调度功能强大,能够处理复杂的任务调度。嵌入式操作系统支持不同优先级任务的注册,即将不同的任务按照对执行实时性的要求注册为不同的优先级。在系统运用过程中,操作系统能够根据各个任务对应的优先级,将系统CPU(Central Processing Unit,中央处理器)资源分配给各个任务,各任务在获取到CPU资源后,才能正常执行。根据基于优先级的任务调度机制,能够保证系统中各任务的有序执行,并且能够应对多任务同时申请CPU资源的情况,即在多个任务同时申请系统CPU资源时,操作系统会优先把CPU资源分配给优先级较高任务,那么,优先级较低的任务不能从优先级较高的任务中抢占CPU资源,只有等待优先级较高的任务执行完毕并释放CPU资源后,该优先级较低的任务才可以得到调度。
在实际的操作系统运行环境中,由于系统运行环境的不理想,可能存在优先级较高的任务长时间占用CPU资源的情况,例如,优先级较高的任务由于内部逻辑出现错误而不主动释放所占用的CPU资源,当该情况发生时,CPU就会放弃优先级较低任务的执行以满足较高优先级任务的执行需求,从而导致优先级较低的任务由于申请不到(或获取不到)CPU资源而长时间得不到执行。由于每个任务都有其规定的任务紧急(或松弛)程度,若一个任务在其规定时间内都得不到执行,若系统不能及时发现本该执行而未被执行的任务,即不能确定出系统调度不正常的情况,从而导致系统的实时性下降,甚至导致系统紊乱。
发明内容
有鉴于此,本发明实施例提供一种嵌入式系统中监控任务执行状态的方法及装置,采用该技术方案,能够对嵌入式系统中的任务执行状态进行监控,从而能够确定出系统中任务的调度是否正常。
本发明实施例通过如下技术方案实现:
根据本发明实施例的一个方面,提供了一种嵌入式系统中的任务监控方法,包括:
分别在系统中注册对应最高优先级的任务以及对应最低优先级的任务;其中,所述对应最高优先级的任务用于控制系统中设定的全局计数变量按照设定方式变化,所述对应最低优先级的任务用于控制所述全局计数变量初始化;
在所述对应最高优先级的任务控制所述全局计数变量变化后,判断变化后的全局计数变量是否到达设定阈值,若是,则确定对应最低优先级的任务未被正常执行。
根据本发明实施例的一个方面,提供了另一种嵌入式系统中的任务监控方法,包括:
在系统中注册对应最低优先级的任务,所述对应最低优先级的任务用于控制系统中设定的全局计数变量初始化;以及在系统中的喂狗函数中增加一个执行函数,所述执行函数用于在所述喂狗函数被调用时控制全局计数变量按照设定方式变化;
在所述执行函数控制所述全局计数变量变化后,判断变化后的全局计数变量是否到达设定阈值,若是,则确定对应最低优先级的任务未被正常执行。
根据本发明实施例的又一个方面,提供了一种嵌入式系统中的任务监控装置,包括:
注册单元,用于分别在系统中注册对应最高优先级的任务以及对应最低优先级的任务;其中,所述对应最高优先级的任务用于控制系统中设定的全局计数变量按照设定方式变化,所述对应最低优先级的任务用于控制所述全局计数变量初始化;
变量监控单元,用于在所述对应最高优先级的任务控制所述全局计数变量变化后,判断变化后的全局计数变量是否到达设定阈值,若是,则确定对应最低优先级的任务未被正常执行。
根据本发明实施例的又一个方面,提供了又一种嵌入式系统中的任务监控装置,包括:
注册单元,用于在系统中注册对应最低优先级的任务,所述对应最低优先级的任务用于控制系统中设定的全局计数变量初始化;以及在系统中的喂狗函数中增加一个执行函数,所述执行函数用于在所述喂狗函数被调用时控制全局计数变量按照设定方式变化;
变量监控单元,用于在所述执行函数控制所述全局计数变量变化后,判断变化后的全局计数变量是否到达设定阈值,若是,则确定对应最低优先级的任务未被正常执行。
通过本发明实施例提供的技术方案,分别在系统中注册对应最高优先级的任务以及对应最低优先级的任务,该对应最高优先级的任务用于控制全局计数变量按照设定方式变化,该对应最低优先级的任务用于控制全局计数变量初始化;在对应最高优先级的任务控制全局计数变量变化后,判断变化后的全局计数变量是否到达设定阈值,若是,则确定对应最低优先级的任务未被正常执行。根据本发明技术方案,能够根据全局计数变量的值对系统中的任务的执行状态进行监控,由于对应最低优先级的任务在运行时会对该全局计数变量初始化,因此,若对应最低优先级的任务未被正常执行,则该全局计数变量不能被初始化,会随着对应最高优先级的任务的执行而不断变化,因此在全局计数变量的值达到设定阈值时,则可以确定对应最低优先级的任务未被正常执行,由于在嵌入式系统中,若对应最低优先级的任务被执行,则其他优先级的任务也能够被执行,从而能够根据对应最低优先级的任务是否被正常执行确定出系统中任务的调度状况是否正常,进而可以在确定系统中任务的调度不正常(即对应最低优先级的任务未被正常执行)时采取相应的策略以保证系统的性能。
通过本发明实施例提供的技术方案,在系统中注册对应最低优先级的任务,该对应最低优先级的任务用于控制全局计数变量初始化;以及在系统中的喂狗函数中增加执行函数,该执行函数用于在所在的喂狗函数被调用时控制全局计数变量按照设定方式变化;在执行函数控制所述全局计数变量变化后,判断变化后的全局计数变量是否到达设定阈值,若是,则确定对应最低优先级的任务未被正常执行。根据本发明技术方案,能够根据全局计数变量的值对系统中的任务的执行状态进行监控,由于对应最低优先级的任务在运行时会对该全局计数变量初始化,因此,若对应最低优先级的任务未被正常执行,则该全局计数变量不能被初始化,会随着执行函数所在的喂狗函数的调用而不断变化,因此在全局计数变量的值达到设定阈值时,则可以确定对应最低优先级的任务未被正常执行,由于在嵌入式系统中,若对应最低优先级的任务被执行,则其他优先级的任务也能够被执行,从而能够根据对应最低优先级的任务是否被正常执行确定出系统中任务的调度状况是否正常,进而可以在确定系统中任务的调度不正常(即对应最低优先级的任务未被正常执行)时采取相应的策略以保证系统的性能。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例一提供的嵌入式系统中监控任务执行状态的流程图;
图2为本发明实施例一提供的确定全局计数变量对应的阈值的流程图;
图3为本发明实施例二提供的嵌入式系统中监控任务执行状态的流程图;
图4为本发明实施例二提供的确定全局计数变量对应的阈值的流程图;
图5为本发明实施例三提供的嵌入式系统中监控任务执行状态的装置示意图一;
图6为本发明实施例三提供的嵌入式系统中监控任务执行状态的装置示意图二;
图7为本发明实施例三提供的嵌入式系统中监控任务执行状态的装置示意图三;
图8为本发明实施例四提供的嵌入式系统中监控任务执行状态的装置示意图一;
图9为本发明实施例四提供的嵌入式系统中监控任务执行状态的装置示意图一;
图10为本发明实施例四提供的嵌入式系统中监控任务执行状态的装置示意图一。
具体实施方式
为了给出确定系统中任务的调度是否正常的实现方案,本发明实施例提供了一种嵌入式系统中监控任务执行状态的方法及装置,以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例一
根据本发明实施例一,提供了一种嵌入式系统中监控任务执行状态的方法,如图1所示,包括:
步骤101、分别在系统中注册对应最高优先级的任务以及对应最低优先级的任务。
该步骤101中,对应最高优先级的任务用于控制系统中设置的全局计数变量按照设定方式变化,即该对应最高优先级的任务每运行一次,系统中设置的全局计数变量按照设定方式变化,例如,递增或递减;对应最低优先级的任务用于控制全局计数变量初始化,即该对应最低优先级的任务每运行一次,系统中设置的全局计数变量初始化。
步骤102、在对应最高优先级的任务控制全局计数变量变化后,判断变化后的全局计数变量是否到达设定阈值,若是,则执行步骤103,若否,则执行步骤104。
步骤103、确定对应最低优先级的任务未被正常执行,至此,根据本次全局计数变量的变化确定任务状态的流程结束。
步骤104、确定对应最低优先级的任务被正常执行,至此,根据本次全局计数变量的变化确定任务状态的流程结束。
基于上述流程,通过在系统中注册对应最高优先级的任务以及对应最低优先级的任务,并通过设置全局计数变量对最高优先级任务的执行次数进行计数,并在全局计数变量达到设定阈值的情况下,确定对应最低优先级的任务未被正常执行,也就是说,由于对应最低优先级的任务未被正常执行,无法对全局计数变量进行初始化,从而使得全局计数变量达到设定阈值。该实施例一实现了最高优先级的任务对最低优先级的任务进行监控的目的,由于在嵌入式操作系统中,最低优先级的任务被执行,通常高于该最低优先级的任务也能够被执行。
本发明实施例一还提供了在系统中注册对应最高优先级任务以及注册最低优先级任务的方法,具体如下:
嵌入式操作系统支持不同优先级任务的注册,一般通过软件开发人员在代码中向操作系统注册,系统能够支持多个优先级,例如,目前大多数系统都能够支持257个优先级,分别通过0-256表示,并从0-256依次降低,即0对应最高优先级,256对应最低优先级,在注册任务时需要将该任务所对应优先级的优先级号信息发送给操作系统,从而完成注册过程。
具体地,在系统中注册对应最高优先级的任务,主要包括如下过程:
首先,判断系统中设置的最高优先级是否被分配,例如,若系统中可分配给应用程序的优先级号分别为1-256的优先级,优先级号1对应最高优先级,则通过判断系统中是否存在对应优先级为1的任务以确定最高优先级是否被分配;
若是,则从分配了该最高优先级的任务中增加一个执行函数用于控制系统中设置的全局计数变量按照设定方式变化;
若否,则在系统中注册用于控制全局计数变量按照设定方式变化的任务,并为该任务分配系统中的最高优先级,具体地,该过程通过调用操作系统中的任务注册函数执行注册完成。
在系统中注册对应最低优先级的任务的过程,与上述在系统中注册对应最高优先级的任务的过程基本一致,即
判断系统中设置的最低优先级是否被分配;
若是,则从分配了最低优先级的任务中增加一个执行函数用于控制系统中的全局计数变量初始化;
若否,则在系统中注册用于控制全局计数变量初始化的任务,并为该任务分配最低优先级。
本发明实施例一中,为全局计数变量设定的阈值可以根据系统的实际运行情况,将该阈值设置为经验值,还可以预先根据系统性能进行估计以确定该阈值。
具体地,本发明实施例一提供的根据系统性能进行估计以确定为全局计数变量设定的阈值,具体如下:
本发明实施例一中,为了通过最高优先级的任务对最低优先级的任务进行有效监控,为全局计数变量设定的阈值可以根据该最高优先级的任务控制全局计数变量变化的方式以及系统性能确定。如图2所示,根据该最高优先级的任务控制全局计数变量变化的方式以及系统性能确定全局计数变量对应的设定阈值,主要包括如下步骤:
步骤201、确定当前系统性能。
步骤202、根据当前系统性能,确定对应最低优先级的任务被执行之前,该对应最高优先级的任务被执行的次数的最大估计值。
步骤203、确定最高优先级的任务控制全局计数变量变化的方式,若为递增,则执行步骤204;若为递减,则执行步骤205。
步骤204、确定该全局计数变量对应的设定阈值为该全局计数变量的初始值加上确定出的最大估计值,至此,确定全局计数变量阈值的流程结束。
该步骤204中,若全局计数变量的初始化值为M,确定出的最大估计值为N,则该全局计数变量的阈值设为M+N。
步骤205、确定该全局计数变量对应的设定阈值为该全局计数变量的初始值减去确定出的最大估计值,至此,确定全局计数变量阈值的流程结束。
该步骤205中,若全局计数变量的初始化值为M,确定出的最大估计值为N,则该全局计数变量的阈值设为M-N。
上述流程中,步骤201中确定的系统性能可以包括CPU主频、系统任务个数、各个任务的松弛(或紧急)程度等参数,根据确定的此类系统性能,可以对最低优先级的任务被执行之前,该对应最高优先级的任务被执行的次数做出估计,确定最大估计值,例如,可以通过如下公式确定该最大估计值U:
其中:
Si=Ti-Ci/F,Si表示第i个任务松弛度,Ti表示第i个任务可容忍的最大执行间隔时间,Ci表示第i个任务执行一次需要的Cycle数(周期数),F表示CPU主频,i取值在1到n之间,n表示系统中的任务个数;
Sh表示对应最高优先级的任务的松弛度。
通过上述公式可以确定最大估计值U。应当理解,以上公式为本发明优选实施例,该最大估计值U还可以直接取经验值。
应当理解,根据本发明实施例,可以根据系统对于确定出的最大估计值的精度确定需要的系统性能,例如,在系统对该最大估计值的精度要求低的情况下,可以仅参考CPU主频以确定该最大估计值,因为CPU主频可以体现CPU的处理能力;在系统对该最大估计值的精度要求高的情况下,可以在以上参数的基础上,进一步参考其他系统系能,例如,系统运行环境等,此处不一一列举。
本发明实施例一还提供了在确定出对应最低优先级的任务未被正常执行之后的处理过程,具体地,在确定对应最低优先级的任务未被正常执行之后,还可以进一步执行如下过程:
输出对应最低优先级的任务未被正常执行的事件;或/和
控制系统重启。
其中:
通过输出对应最低优先级的任务未被正常执行的事件,可以使操作系统检测到该表示对应最低优先级的任务未被正常执行的事件。在此基础上,可以优选地将该异常事件记录到日志中,便于分析和定位问题,例如,通过日志查找当前操作系统调用栈,查找操作系统时间分片表,分析出是哪个任务异常消耗CPU资源,试图通过修改外部条件让该任务退出异常消耗状态,或直接将该任务挂起或重新激活。
本发明优选实施例中,输出对应最低优先级的任务未被正常执行的事件,可以通过如下方式实现:
在最高优先级任务中直接执行异常处理,即在对应最高优先级的任务中添加一个执行函数,用于输出对应最低优先级的任务未被正常执行的事件;也可以传递该消息给另一个任务来处理。
通过控制系统重启,能够使系统进入正常状态,即使系统恢复初始态。
以上两个过程中可以只执行一个,即可以只输出对应最低优先级的任务未被正常执行的事件,也可以直接控制系统重启;也可以都执行,即输出对应最低优先级的任务未被正常执行的事件,并控制系统重启。
根据本发明实施例一提供的技术方案,通过注册的对应最高优先级的任务的调度状况来监控注册的对应最低优先级的任务的调度状况,从而达到对整个系统中任务的调度状态的监控。该实施例一中,对应最高优先级的任务的调度频率一般高于对应最低优先级任务的调度频率,并且,该对应最高优先级任务的执行不需要获取临界资源,而只控制全局计数变量按照设定方式变化以及对变化后的全局计数变量进行判断,因此该对应最高优先级任务进入死锁的情况是不会发生。如果系统中对应其它优先级的任务发生死锁现象或某个任务异常的消耗CPU资源,则对应最低优先级的任务可能长时间得不到调度,此时若系统中没有看门狗,则可以根据本发明实施例一提供的上述方法控制系统重启;若系统中有看门狗,则基于该看门狗可以检测出系统哪些任务异常消耗了过多的CPU资源,系统得知此消息后可以对这些异常的任务做相应的处理,必要时也可以复位整个系统,即控制系统重启。
根据本发明实施例提供的技术方案,可以在不增加硬件模块也不改动其它软件模块接口的情况下,利用操作系统对高、低优先级任务的调度频率差异来实现软件看门狗,只需要注册两个任务就可以实现涵盖所有任务的活性监控,即高优先级任务负责对低优先级任务进行监控,如果低优先级任务长时间得不到调度,则采取必要措施,例如,控制系统重启。
根据本发明实施例,如果原系统中有喂硬件狗的喂狗函数,可由喂狗函数取代高优先级任务对低优先级任务进行监控,从而能够达到充分利用系统资源的目的,也无需额外再注册对应最高优先级的任务。
由喂狗函数监控低优先级任务的详细实现方案将在随后的实施例二中进行说明。
实施例二
根据本发明实施例二,提供了一种嵌入式系统中监控任务执行状态的方法,如图3所示,包括:
步骤301、在系统中注册对应最低优先级的任务,以及在系统中的喂狗函数中增加一个执行函数。
该步骤301中,对应最低优先级的任务用于控制系统中设定的全局计数变量初始化,即该对应最低优先级的任务每运行一次,系统中设置的全局计数变量初始化;在喂狗函数中增加的执行函数用于在所在的喂狗函数被调用时控制系统中设置的全局计数变量按照设定方式变化,即在喂狗函数被调用时,该喂狗函数中的执行函数控制全局计数变量按照设定方式变化,例如,递增或递减。
步骤302、在执行函数控制全局计数变量变化后,判断变化后的全局计数变量是否到达设定阈值,若是,则执行步骤303,若否,则执行步骤304。
步骤303、确定对应最低优先级的任务未被正常执行,至此,根据本次全局计数变量的变化确定任务状态的流程结束。
步骤304、确定对应最低优先级的任务被正常执行,至此,根据本次全局计数变量的变化确定任务状态的流程结束。
基于上述流程,通过在系统中注册对应最低优先级的任务以及在系统中的喂狗函数中增加一个执行函数,并通过设置全局计数变量对执行函数所在的喂狗函数被调用的次数进行计数,在全局计数变量达到设定阈值的情况下,确定对应最低优先级的任务未被正常执行,也就是说,由于对应最低优先级的任务未被正常执行,无法对全局计数变量进行初始化,从而使得全局计数变量达到设定阈值。该实施例二实现了通过喂狗函数被调用的情况对最低优先级的任务进行监控的目的,由于在嵌入式操作系统中,最低优先级的任务被执行,通常高于该最低优先级的任务也能够被执行。
该实施例二中,在系统中注册对应最低优先级的任务的过程与上述实施例一中提供的在系统中注册对应最低优先级的任务的过程基本一致,此处不再赘述。
本发明实施例二中,为全局计数变量设定的阈值可以根据系统的实际运行情况,将该阈值设置为经验值,还可以预先根据系统性能进行估计以确定该阈值。
具体地,本发明实施例二提供的根据系统性能进行估计以确定为全局计数变量设定的阈值,具体如下:
本发明实施例二中,为了通过喂狗函数被调用的次数对最低优先级的任务进行有效监控,为全局计数变量设定的阈值可以根据喂狗函数中增加的执行函数控制该全局计数变量变化的方式以及系统性能确定。如图4所示,根据执行函数控制全局计数变量变化的方式以及系统性能确定所述设定阈值,包括:
步骤401、确定当前系统性能。
步骤402、根据当前系统性能,确定对应最低优先级的任务被执行之前,执行函数所在的喂狗函数被调用的次数的最大估计值。
步骤403、确定执行函数控制该全局计数变量变化的方式,若为递增,则执行步骤404;若为递减,则执行步骤405。
步骤404、确定该全局计数变量对应的设定阈值为该全局计数变量的初始值加上确定出的最大估计值,至此,确定全局计数变量阈值的流程结束。
步骤405、确定该全局计数变量对应的设定阈值为该全局计数变量的初始值减去确定出的最大估计值,至此,确定全局计数变量阈值的流程结束。
上述流程中,步骤201中确定的系统性能可以包括CPU主频、系统任务个数、各个任务的松弛(或紧急)程度等参数,根据确定的此类系统性能,可以对最低优先级的任务被执行之前,该对应最高优先级的任务被执行的次数做出估计,确定最大估计值,例如,可以通过如下公式确定该最大估计值U:
其中:
Si=Ti-Ci/F,Si表示第i个任务松弛度,Ti表示第i个任务可容忍的最大执行间隔时间,Ci表示第i个任务执行一次需要的Cycle数(周期数),F表示CPU主频,i取值在1到n之间,n表示系统中的任务个数;
Sh表示喂狗函数的松弛度。
通过上述公式可以确定最大估计值U。应当理解,以上公式为本发明优选实施例,该最大估计值U还可以直接取经验值。
应当理解,根据本发明实施例,可以根据系统对于确定出的最大估计值的精度确定需要的系统性能,例如,在系统对该最大估计值的精度要求低的情况下,可以仅参考CPU主频以确定该最大估计值,因为CPU主频可以体现CPU的处理能力;在系统对该最大估计值的精度要求高的情况下,可以在以上参数的基础上,进一步参考其他系统系能,例如,系统运行环境等,此处不一一列举。
本发明实施例二还提供了在确定出对应最低优先级的任务未被正常执行之后的处理过程,具体过程与上述实施例一中所述的过程基本相同,即可以在确定对应最低优先级的任务未被正常执行之后,输出对应最低优先级的任务未被正常执行的事件;或/和,控制系统重启。
上述过程的详细技术细节已在上述实施例一中描述,此处不再赘述。
本发明实施例一以及实施例二提供的技术方案,在原来的系统中,只需要增加两个任务和一个全局计数变量就可以实现对系统中任务的调度是否正常进行监控的目的,增加的两个任务的执行指令很少,不会增加系统负担。如果系统中没有硬件看门狗,可代替硬件看门狗,应用在一些没有硬件看门狗的系统中;如果系统中有硬件看门狗,可作为对硬件看门狗的一个补充,用于监控低优先级任务是否被饿死。由于软件在锁中断中喂狗,长时间不退出中断,硬件看门狗就不会复位系统。如果在原来的喂狗函数中增加根据本发明实施例实现的软件看门狗装置就可以弥补在锁中断中硬件看门狗无法监控系统的问题,从而可以防止系统陷死在中断中。
实施例三
与上述实施例一对应,本发明实施例三提供了一种嵌入式系统中的任务监控装置,如图5所示,该装置包括:
注册单元501以及变量监控单元502;
其中:
注册单元501,用于分别在系统中注册对应最高优先级的任务以及对应最低优先级的任务;其中,所述对应最高优先级的任务用于控制系统中设定的全局计数变量按照设定方式变化,所述对应最低优先级的任务用于控制所述全局计数变量初始化;
变量监控单元502,用于在注册单元501注册的对应最高优先级的任务控制所述全局计数变量变化后,判断变化后的全局计数变量是否到达设定阈值,若是,则确定对应最低优先级的任务未被正常执行。
本发明优选实施例中,图5所示的注册单元501,具体用于:
判断系统中设置的最高优先级是否被分配;
若是,则从分配了所述最高优先级的任务中增加一个执行函数用于控制所述全局计数变量按照设定方式变化;
若否,则在系统中注册用于控制所述全局计数变量按照设定方式变化的任务,并为该任务分配所述最高优先级。
本发明优选实施例中,图5所示的注册单元501,具体用于:
判断系统中设置的最低优先级是否被分配;
若是,则从分配了所述最低优先级的任务中增加一个执行函数用于控制所述全局计数变量初始化;
若否,则在系统中注册用于控制所述全局计数变量初始化的任务,并为该任务分配所述最低优先级。
如图6所示,本发明优选实施例中,图5所示的装置还可以进一步包括:
阈值确定单元503,用于根据所述最高优先级的任务控制全局计数变量变化的方式以及系统性能确定所述全局计数变量对应的设定阈值,该设定阈值用于提供给所述变量监控单元使用。
本发明优选实施例中,图6所示的装置包括的阈值确定单元503,具体用于:
根据系统性能,确定所述对应最低优先级的任务被执行之前,所述对应最高优先级的任务被执行的次数的最大估计值;
当所述最高优先级的任务控制全局计数变量变化的方式为控制全局计数变量递增,则确定所述设定阈值为所述全局计数变量的初始值加上确定的所述最大估计值;
当所述最高优先级的任务控制全局计数变量变化的方式为控制全局计数变量递减,则确定所述设定阈值为所述全局计数变量的初始值减去确定的所述最大估计值。
如图7所示,本发明优选实施例中,图5所示的装置还可以进一步包括:
处理单元504,用于在变量监控单元502确定对应最低优先级的任务未被正常执行之后,输出对应最低优先级的任务未被正常执行的事件;或/和控制系统重启。
应当理解,以上装置包括的单元仅为根据该装置实现的功能进行的逻辑划分,实际应用中,可以进行上述单元的叠加或拆分。并且该实施例三提供的嵌入式系统中的任务监控装置所实现的功能与上述实施例一提供的嵌入式系统中的任务监控的方法流程一一对应,对于该装置所实现的更为详细的处理流程,在上述方法实施例中已做详细描述,此处不再详细描述。
实施例四
与上述实施例二对应,本发明实施例四提供了一种嵌入式系统中的任务监控装置,如图8所示,该装置包括:
注册单元801以及变量监控单元802;
其中:
注册单元801,用于在系统中注册对应最低优先级的任务,所述对应最低优先级的任务用于控制所述全局计数变量初始化;以及在系统中的喂狗函数中增加一个执行函数,所述执行函数用于在所述喂狗函数被调用时控制全局计数变量按照设定方式变化;
变量监控单元802,用于在注册单元801注册的执行函数控制所述全局计数变量变化后,判断变化后的全局计数变量是否到达设定阈值,若是,则确定对应最低优先级的任务未被正常执行。
本发明优选实施例中,图8所示装置包括的注册单元801,具体用于:
判断系统中设置的最低优先级是否被分配;
若是,则从分配了所述最低优先级的任务中增加一个执行函数用于控制所述全局计数变量初始化;
若否,则在系统中注册用于控制所述全局计数变量初始化的任务,并为该任务分配所述最低优先级。
如图9所示,本发明优选实施例中,图8所示的装置还可以进一步包括:
阈值确定单元803,用于根据所述执行函数控制所述全局计数变量变化的方式以及系统性能确定所述全局计数变量对应的设定阈值,该设定阈值用于提供给变量监控单元802使用。
本发明优选实施例中,图9所示装置包括的阈值确定单元803,具体用于:
根据系统性能,确定所述对应最低优先级的任务被执行之前,所述执行函数所在的喂狗函数被调用的次数的最大估计值;
当所述执行函数控制所述全局计数变量变化的方式为控制全局计数变量递增,则确定所述设定阈值为所述全局计数变量的初始值加上确定的所述最大估计值;
当所述执行函数控制所述全局计数变量变化的方式为控制全局计数变量递减,则确定所述设定阈值为所述全局计数变量的初始值减去确定的所述最大估计值。
如图10所示,本发明优选实施例中,图8所示的装置还可以进一步包括:
处理单元804,用于在所述变量监控单元确定对应最低优先级的任务未被正常执行之后,输出对应最低优先级的任务未被正常执行的事件;或/和控制系统重启。
应当理解,以上装置包括的单元仅为根据该装置实现的功能进行的逻辑划分,实际应用中,可以进行上述单元的叠加或拆分。并且该实施例四提供的嵌入式系统中的任务监控装置所实现的功能与上述实施例二提供的嵌入式系统中的任务监控的方法流程一一对应,对于该装置所实现的更为详细的处理流程,在上述方法实施例中已做详细描述,此处不再详细描述。
通过本发明实施例一或实施例三提供的技术方案,分别在系统中注册对应最高优先级的任务以及对应最低优先级的任务,该对应最高优先级的任务用于控制全局计数变量按照设定方式变化,该对应最低优先级的任务用于控制全局计数变量初始化;在对应最高优先级的任务控制全局计数变量变化后,判断变化后的全局计数变量是否到达设定阈值,若是,则确定对应最低优先级的任务未被正常执行。根据本发明技术方案,能够根据全局计数变量的值对系统中的任务的执行状态进行监控,由于对应最低优先级的任务在运行时会对该全局计数变量初始化,因此,若对应最低优先级的任务未被正常执行,则该全局计数变量不能被初始化,会随着对应最高优先级的任务的执行而不断变化,因此在全局计数变量的值达到设定阈值时,则可以确定对应最低优先级的任务未被正常执行,由于在嵌入式系统中,若对应最低优先级的任务被执行,则其他优先级的任务也能够被执行,从而能够根据对应最低优先级的任务是否被正常执行确定出系统中任务的调度状况是否正常,进而可以在确定系统中任务的调度不正常(即对应最低优先级的任务未被正常执行)时采取相应的策略以保证系统的性能。
通过本发明实施例二或实施例四提供的技术方案,在系统中注册对应最低优先级的任务,该对应最低优先级的任务用于控制全局计数变量初始化;以及在系统中的喂狗函数中增加执行函数,该执行函数用于在所在的喂狗函数被调用时控制全局计数变量按照设定方式变化;在执行函数控制所述全局计数变量变化后,判断变化后的全局计数变量是否到达设定阈值,若是,则确定对应最低优先级的任务未被正常执行。根据本发明技术方案,能够根据全局计数变量的值对系统中的任务的执行状态进行监控,由于对应最低优先级的任务在运行时会对该全局计数变量初始化,因此,若对应最低优先级的任务未被正常执行,则该全局计数变量不能被初始化,会随着执行函数所在的喂狗函数的调用而不断变化,因此在全局计数变量的值达到设定阈值时,则可以确定对应最低优先级的任务未被正常执行,由于在嵌入式系统中,若对应最低优先级的任务被执行,则其他优先级的任务也能够被执行,从而能够根据对应最低优先级的任务是否被正常执行确定出系统中任务的调度状况是否正常,进而可以在确定系统中任务的调度不正常(即对应最低优先级的任务未被正常执行)时采取相应的策略以保证系统的性能。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (22)
1.一种嵌入式系统中的任务监控方法,其特征在于,包括:
分别在系统中注册对应最高优先级的任务以及对应最低优先级的任务;其中,所述对应最高优先级的任务用于控制系统中设定的全局计数变量按照设定方式变化,所述对应最低优先级的任务用于控制所述全局计数变量初始化;
在所述对应最高优先级的任务控制所述全局计数变量变化后,判断变化后的全局计数变量是否到达设定阈值,若是,则确定对应最低优先级的任务未被正常执行。
2.如权利要求1所述的方法,其特征在于,在系统中注册对应最高优先级的任务,包括:
判断系统中设置的最高优先级是否被分配;
若是,则从分配了所述最高优先级的任务中增加一个执行函数用于控制所述全局计数变量按照设定方式变化;
若否,则在系统中注册用于控制所述全局计数变量按照设定方式变化的任务,并为该任务分配所述最高优先级。
3.如权利要求1所述的方法,其特征在于,在系统中注册对应最低优先级的任务,包括:
判断系统中设置的最低优先级是否被分配;
若是,则从分配了所述最低优先级的任务中增加一个执行函数用于控制所述全局计数变量初始化;
若否,则在系统中注册用于控制所述全局计数变量初始化的任务,并为该任务分配所述最低优先级。
4.如权利要求1所述的方法,其特征在于,所述设定阈值根据所述最高优先级的任务控制全局计数变量变化的方式以及系统性能确定。
5.如权利要求4所述的方法,其特征在于,根据所述最高优先级的任务控制全局计数变量变化的方式以及系统性能确定所述设定阈值,包括:
根据系统性能,确定所述对应最低优先级的任务被执行之前,所述对应最高优先级的任务被执行的次数的最大估计值;
当所述最高优先级的任务控制全局计数变量变化的方式为控制全局计数变量递增,则确定所述设定阈值为所述全局计数变量的初始值加上确定的所述最大估计值;
当所述最高优先级的任务控制全局计数变量变化的方式为控制全局计数变量递减,则确定所述设定阈值为所述全局计数变量的初始值减去确定的所述最大估计值。
6.如权利要求1所述的方法,其特征在于,确定对应最低优先级的任务未被正常执行之后,还包括:
输出对应最低优先级的任务未被正常执行的事件;或/和
控制系统重启。
7.一种嵌入式系统中的任务监控方法,其特征在于,包括:
在系统中注册对应最低优先级的任务,所述对应最低优先级的任务用于控制系统中设定的全局计数变量初始化;以及在系统中的喂狗函数中增加一个执行函数,所述执行函数用于在所述喂狗函数被调用时控制全局计数变量按照设定方式变化;
在所述执行函数控制所述全局计数变量变化后,判断变化后的全局计数变量是否到达设定阈值,若是,则确定对应最低优先级的任务未被正常执行。
8.如权利要求7所述的方法,其特征在于,在系统中注册对应最低优先级的任务,包括:
判断系统中设置的最低优先级是否被分配;
若是,则从分配了所述最低优先级的任务中增加一个执行函数用于控制所述全局计数变量初始化;
若否,则在系统中注册用于控制所述全局计数变量初始化的任务,并为该任务分配所述最低优先级。
9.如权利要求7所述的方法,其特征在于,所述设定阈值根据所述执行函数控制所述全局计数变量变化的方式以及系统性能确定。
10.如权利要求9所述的方法,其特征在于,根据所述执行函数控制所述全局计数变量变化的方式以及系统性能确定所述设定阈值,包括:
根据系统性能,确定所述对应最低优先级的任务被执行之前,所述执行函数所在的喂狗函数被调用的次数的最大估计值;
当所述执行函数控制所述全局计数变量变化的方式为控制全局计数变量递增,则确定所述设定阈值为所述全局计数变量的初始值加上确定的所述最大估计值;
当所述执行函数控制所述全局计数变量变化的方式为控制全局计数变量递减,则确定所述设定阈值为所述全局计数变量的初始值减去确定的所述最大估计值。
11.如权利要求7所述的方法,其特征在于,确定对应最低优先级的任务未被正常执行之后,还包括:
输出对应最低优先级的任务未被正常执行的事件;或/和
控制系统重启。
12.一种嵌入式系统中的任务监控装置,其特征在于,包括:
注册单元,用于分别在系统中注册对应最高优先级的任务以及对应最低优先级的任务;其中,所述对应最高优先级的任务用于控制系统中设定的全局计数变量按照设定方式变化,所述对应最低优先级的任务用于控制所述全局计数变量初始化;
变量监控单元,用于在所述对应最高优先级的任务控制所述全局计数变量变化后,判断变化后的全局计数变量是否到达设定阈值,若是,则确定对应最低优先级的任务未被正常执行。
13.如权利要求12所述的装置,其特征在于,所述注册单元,具体用于:
判断系统中设置的最高优先级是否被分配;
若是,则从分配了所述最高优先级的任务中增加一个执行函数用于控制所述全局计数变量按照设定方式变化;
若否,则在系统中注册用于控制所述全局计数变量按照设定方式变化的任务,并为该任务分配所述最高优先级。
14.如权利要求12所述的装置,其特征在于,所述注册单元,具体用于:
判断系统中设置的最低优先级是否被分配;
若是,则从分配了所述最低优先级的任务中增加一个执行函数用于控制所述全局计数变量初始化;
若否,则在系统中注册用于控制所述全局计数变量初始化的任务,并为该任务分配所述最低优先级。
15.如权利要求12所述的装置,其特征在于,还包括:
阈值确定单元,用于根据所述最高优先级的任务控制全局计数变量变化的方式以及系统性能确定所述全局计数变量对应的设定阈值。
16.如权利要求15所述的装置,其特征在于,所述阈值确定单元,具体用于:
根据系统性能,确定所述对应最低优先级的任务被执行之前,所述对应最高优先级的任务被执行的次数的最大估计值;
当所述最高优先级的任务控制全局计数变量变化的方式为控制全局计数变量递增,则确定所述设定阈值为所述全局计数变量的初始值加上确定的所述最大估计值;
当所述最高优先级的任务控制全局计数变量变化的方式为控制全局计数变量递减,则确定所述设定阈值为所述全局计数变量的初始值减去确定的所述最大估计值。
17.如权利要求12所述的装置,其特征在于,还包括:
处理单元,用于在所述变量监控单元确定对应最低优先级的任务未被正常执行之后,输出对应最低优先级的任务未被正常执行的事件;或/和控制系统重启。
18.一种嵌入式系统中的任务监控装置,其特征在于,包括:
注册单元,用于在系统中注册对应最低优先级的任务,所述对应最低优先级的任务用于控制系统中设定的全局计数变量初始化;以及在系统中的喂狗函数中增加一个执行函数,所述执行函数用于在所述喂狗函数被调用时控制全局计数变量按照设定方式变化;
变量监控单元,用于在所述执行函数控制所述全局计数变量变化后,判断变化后的全局计数变量是否到达设定阈值,若是,则确定对应最低优先级的任务未被正常执行。
19.如权利要求18所述的装置,其特征在于,所述注册单元,具体用于:
判断系统中设置的最低优先级是否被分配;
若是,则从分配了所述最低优先级的任务中增加一个执行函数用于控制所述全局计数变量初始化;
若否,则在系统中注册用于控制所述全局计数变量初始化的任务,并为该任务分配所述最低优先级。
20.如权利要求18所述的装置,其特征在于,还包括:
阈值确定单元,用于根据所述执行函数控制所述全局计数变量变化的方式以及系统性能确定所述全局计数变量对应的设定阈值。
21.如权利要求20所述的装置,其特征在于,所述阈值确定单元,具体用于:
根据系统性能,确定所述对应最低优先级的任务被执行之前,所述执行函数所在的喂狗函数被调用的次数的最大估计值;
当所述执行函数控制所述全局计数变量变化的方式为控制全局计数变量递增,则确定所述设定阈值为所述全局计数变量的初始值加上确定的所述最大估计值;
当所述执行函数控制所述全局计数变量变化的方式为控制全局计数变量递减,则确定所述设定阈值为所述全局计数变量的初始值减去确定的所述最大估计值。
22.如权利要求18所述的装置,其特征在于,还包括:
处理单元,用于在所述变量监控单元确定对应最低优先级的任务未被正常执行之后,输出对应最低优先级的任务未被正常执行的事件;或/和控制系统重启。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010266130 CN101937371A (zh) | 2010-08-27 | 2010-08-27 | 一种嵌入式系统中监控任务执行状态的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010266130 CN101937371A (zh) | 2010-08-27 | 2010-08-27 | 一种嵌入式系统中监控任务执行状态的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101937371A true CN101937371A (zh) | 2011-01-05 |
Family
ID=43390715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010266130 Pending CN101937371A (zh) | 2010-08-27 | 2010-08-27 | 一种嵌入式系统中监控任务执行状态的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101937371A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023943A (zh) * | 2011-09-27 | 2013-04-03 | 中国移动通信集团公司 | 任务处理方法及其装置、终端设备 |
CN106776202A (zh) * | 2016-11-25 | 2017-05-31 | 广州日滨科技发展有限公司 | 嵌入式操作系统任务的监控方法与系统 |
CN107423151A (zh) * | 2017-03-28 | 2017-12-01 | 上海斐讯数据通信技术有限公司 | 一种无线接入点系统恢复的方法和装置 |
CN110968448A (zh) * | 2019-12-03 | 2020-04-07 | 积成电子股份有限公司 | 一种多任务运行状态的监视方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1595368A (zh) * | 2003-09-13 | 2005-03-16 | 华为技术有限公司 | 多任务系统的异常监控装置及其方法 |
CN1908906A (zh) * | 2005-08-05 | 2007-02-07 | 中兴通讯股份有限公司 | 一种软件运行状态的监控方法 |
CN101141510A (zh) * | 2007-03-12 | 2008-03-12 | 中兴通讯股份有限公司 | 一种前台单板系统失控后的智能复位方法 |
CN101158913A (zh) * | 2007-11-15 | 2008-04-09 | 上海华为技术有限公司 | 一种检测任务死循环的方法及系统 |
CN101216798A (zh) * | 2008-01-14 | 2008-07-09 | 浙江大学 | 一种基于看门狗和定时器的周期任务可靠性的监控方法 |
CN101387971A (zh) * | 2008-09-26 | 2009-03-18 | 中兴通讯股份有限公司 | 一种嵌入式软件的任务调整方法和装置 |
-
2010
- 2010-08-27 CN CN 201010266130 patent/CN101937371A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1595368A (zh) * | 2003-09-13 | 2005-03-16 | 华为技术有限公司 | 多任务系统的异常监控装置及其方法 |
CN1908906A (zh) * | 2005-08-05 | 2007-02-07 | 中兴通讯股份有限公司 | 一种软件运行状态的监控方法 |
CN101141510A (zh) * | 2007-03-12 | 2008-03-12 | 中兴通讯股份有限公司 | 一种前台单板系统失控后的智能复位方法 |
CN101158913A (zh) * | 2007-11-15 | 2008-04-09 | 上海华为技术有限公司 | 一种检测任务死循环的方法及系统 |
CN101216798A (zh) * | 2008-01-14 | 2008-07-09 | 浙江大学 | 一种基于看门狗和定时器的周期任务可靠性的监控方法 |
CN101387971A (zh) * | 2008-09-26 | 2009-03-18 | 中兴通讯股份有限公司 | 一种嵌入式软件的任务调整方法和装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023943A (zh) * | 2011-09-27 | 2013-04-03 | 中国移动通信集团公司 | 任务处理方法及其装置、终端设备 |
CN103023943B (zh) * | 2011-09-27 | 2016-06-22 | 中国移动通信集团公司 | 任务处理方法及其装置、终端设备 |
CN106776202A (zh) * | 2016-11-25 | 2017-05-31 | 广州日滨科技发展有限公司 | 嵌入式操作系统任务的监控方法与系统 |
CN106776202B (zh) * | 2016-11-25 | 2020-06-26 | 日立楼宇技术(广州)有限公司 | 嵌入式操作系统任务的监控方法与系统 |
CN107423151A (zh) * | 2017-03-28 | 2017-12-01 | 上海斐讯数据通信技术有限公司 | 一种无线接入点系统恢复的方法和装置 |
CN110968448A (zh) * | 2019-12-03 | 2020-04-07 | 积成电子股份有限公司 | 一种多任务运行状态的监视方法 |
CN110968448B (zh) * | 2019-12-03 | 2023-11-28 | 积成电子股份有限公司 | 一种多任务运行状态的监视方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106980546B (zh) | 一种任务异步执行方法、装置及系统 | |
JP6294586B2 (ja) | 命令スレッドを組み合わせた実行の管理システムおよび管理方法 | |
Navet et al. | Multi-source and multicore automotive ECUs-OS protection mechanisms and scheduling | |
CN1952898A (zh) | 采用进程线程的自适应分区的进程调度程序 | |
US20160077870A1 (en) | Starvation control in a data processing system | |
WO2005124553A1 (en) | Autonomic monitoring in a grid environment | |
US11416293B2 (en) | Control unit having a scheduler for scheduling a plurality of virtual machines, and methods for scheduling a plurality of virtual machines | |
CN108536531B (zh) | 一种基于单片机的任务调度和电源管理方法 | |
US7529874B2 (en) | Semiconductor integrated circuit device for real-time processing | |
CN101937371A (zh) | 一种嵌入式系统中监控任务执行状态的方法及装置 | |
CN111324432A (zh) | 处理器调度方法、装置、服务器及存储介质 | |
US9128754B2 (en) | Resource starvation management in a computer system | |
US10194045B2 (en) | Printer power management | |
CN113986500A (zh) | 多任务系统中的任务确定性调度方法和任务诊断方法 | |
EP3916554B1 (en) | A throughput-optimized, quality-of-service aware power capping system | |
US8423681B2 (en) | Control apparatus for process input-output device | |
CN109947015B (zh) | 任务的执行方法及主控制器 | |
US20050160425A1 (en) | Limitation of the response time of a software process | |
CN110968448A (zh) | 一种多任务运行状态的监视方法 | |
JP2009048358A (ja) | 情報処理装置及びスケジューリング方法 | |
CN114706663A (zh) | 一种计算资源调度方法、介质及计算设备 | |
JP2019079336A (ja) | 数値制御装置 | |
CN103678095A (zh) | 一种告警检测方法 | |
EP3176674A1 (en) | Method for power control of a control unit and control unit | |
KR101725408B1 (ko) | 실시간 운영체제의 태스크 스케줄링 방법 |
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 |
Application publication date: 20110105 |