嵌入式操作系统任务的监控方法与系统技术方案

技术编号:15541470 阅读:53 留言:0更新日期:2017-06-05 10:51
本发明专利技术提供一种嵌入式操作系统任务的监控方法与系统,区分嵌入式操作系统任务类型,查找最高优先级任务,分别设定周期任务、非周期任务以及最高优先级任务的监控变量与相应的阈值,通过对监控变量的计数,分别对周期任务、非周期任务以及最高优先级任务进行监控,并将记录的监控变量分别与相应的阈值比较,当监控变量的计数值大于相应的阈值时,则认为该监控变量对应的任务已意外挂起,调用异常处理函数处理挂起的任务。整个过程中,根据任务优先级以及类型将监控变量插入相应的优先级任务中去,对每种类型任务的每个任务都能纳入监控,简单且高效实现对嵌入式操作系统任务的监控。

Method and system for monitoring embedded operating system task

The invention provides a method and system for monitoring an embedded operating system embedded operating system between tasks, task type, to find the highest priority task, set of periodic tasks and non periodic tasks and the highest priority task monitoring variables and the corresponding threshold, through the counting of the monitoring variables, respectively, non periodic task monitoring cycle the task and the highest priority task, and will monitor the variables recorded respectively and the corresponding threshold value, when the monitored variable is greater than the corresponding threshold, the monitoring variables corresponding to the task has been accidentally hung, calling the exception handler pending task. In the whole process, according to the priority and type of monitoring variables are inserted into the corresponding priority tasks, each task for each type of task can be included in the monitoring, simple and efficient monitoring system based on embedded operating system tasks.

【技术实现步骤摘要】
嵌入式操作系统任务的监控方法与系统
本专利技术涉及系统监控
,特别是涉及嵌入式操作系统任务的监控方法与系统。
技术介绍
在电子产品开发领域,嵌入式操作系统的应用已经十分普遍。嵌入式操作系统的出现,使电子产品中的程序编写、维护变得相对简单、可靠。但是高效、稳定的软件监控管理方法在程序运行过程中是非常有必要的。在程序开发阶段,可以及时发现并解决问题,能定位并找出程序中的BUG,从而加快了产品研发的进度。在产品使用和维护周期内,可以实现程序的问题追踪,异常时自动恢复。传统的监控方法,通过在运行应用程序时,为所运行的应用程序创建异常回调链表,从异常处理函数与异常信息的对应关系中,查询与所捕获异常匹配的异常处理函数,在查询到匹配的异常处理函数后,调用并执行匹配的异常处理函数,进行异常处理。上述方式虽然能够实现嵌入式操作系统任务的监控,但是实现过程需要多次调用、查询数据,实现过程复杂,监控效率低下。
技术实现思路
基于此,有必要针对一般嵌入式操作系统任务的监控方式实现复杂且监控效率低下的问题,提供一种实现简单且监控效率高的嵌入式操作系统任务的监控方法与系统。一种嵌入式操作系统任务的监控方法,包括步骤:分析所有嵌入式操作系统任务,区分所述嵌入式操作系统任务类型,所述任务类型包括周期任务与非周期任务;找出所述嵌入式操作系统任务中最高优先级任务;分别设定所述周期任务、所述非周期任务以及所述最高优先级任务的监控变量与相应的阈值;通过所述对监控变量的计数,分别对所述周期任务、所述非周期任务以及所述最高优先级任务进行监控,并将监控变量的计数值与相应的阈值比较;当监控变量的计数值大于所述相应的阈值时,则认为该监控变量对应的任务已意外挂起,调用异常处理函数处理挂起的任务。一种嵌入式操作系统任务的监控系统,包括:分析模块,用于分析所有嵌入式操作系统任务,区分所述嵌入式操作系统任务类型,所述任务类型包括周期任务与非周期任务;最高优先级任务查找模块,用于找出所述嵌入式操作系统任务中最高优先级任务;参数设定模块,用于分别设定所述周期任务、所述非周期任务以及所述最高优先级任务的监控变量与相应的阈值;比较模块,用于通过对所述监控变量的计数,分别对所述周期任务、所述非周期任务以及所述最高优先级任务进行监控,并将监控变量的计数值分别与相应的阈值比较;处理模块,用于当监控变量的计数值大于所述相应的阈值时,则认为该监控变量对应的任务已意外挂起,调用异常处理函数处理挂起的任务。本专利技术嵌入式操作系统任务的监控方法与系统,区分嵌入式操作系统任务类型,查找最高优先级任务,分别设定周期任务、非周期任务以及最高优先级任务的监控变量与相应的阈值,通过对监控变量的计数,分别对周期任务、非周期任务以及最高优先级任务进行监控,并将记录的监控变量分别与相应的阈值比较,当监控变量的计数值大于相应的阈值时,则认为该监控变量对应的任务已意外挂起,调用异常处理函数处理挂起的任务。整个过程中,根据任务优先级以及类型将监控变量插入相应的优先级任务中去,对每种类型任务的每个任务都能纳入监控,简单且高效实现对嵌入式操作系统任务的监控。附图说明图1为本专利技术嵌入式操作系统任务的监控方法其中一个实施例的流程示意图;图2为本专利技术嵌入式操作系统任务的监控方法其中一个应用实例的流程示意图;图3为本专利技术嵌入式操作系统任务的监控方法其中一个应用实例的流程示意图;图4为本专利技术嵌入式操作系统任务的监控方法其中一个应用实例的流程示意图;图5为本专利技术嵌入式操作系统任务的监控系统其中一个实施例的结构示意图。具体实施方式如图1所示,一种嵌入式操作系统任务的监控方法,包括步骤:S100:分析所有嵌入式操作系统任务,区分嵌入式操作系统任务类型,任务类型包括周期任务与非周期任务。在嵌入式系统设计阶段,分析所有嵌入式操作系统任务,区分嵌入式操作系统任务类型,任务类型包括周期任务与非周期任务。周期任务可以理解为系统设定固定每个周期执行一次的任务,例如周期性巡检、周期性记录等这些任务,非周期任务可以理解为突发的或者仅执行有限次数、没有固定执行时间周期的任务,例如接收到外部输入而执行某个操作的任务等。S200:找出嵌入式操作系统任务中最高优先级任务。在同等条件下,优先级高的任务最先获得芯片资源进入运行状态。非必要的,可以对嵌入式操作系统任务中的周期任务进行优先级排序,以优先级从高到低顺序依次排列构成数据队列,排在队列最前面的周期任务即为最高优先级任务,记录为P[1]。S300:分别设定周期任务、非周期任务以及最高优先级任务的监控变量与相应的阈值。对周期任务、非周期任务以及最高优先级任务分别设定监控变量以及相应的阈值。具体来说,这些监控变量以及相应的阈值是增加在各个类型任务中的,在周期任务中增加监控变量并设定其阈值,在非周期任务中增加监控变量并设定其阈值,在最高优先级任务中增加监控变量并设定其阈值。更进一步的,针对最高优先级任务可以在系统节拍中断中增加的监控变量,这样使用操作系统节拍监控最高优先级任务,不需要独立的监控任务模块,从而降低了系统开销,更进一步提高监控效率。S400:通过对监控变量的计数,分别对周期任务、非周期任务以及最高优先级任务进行监控,并将监控变量的计数值分别与相应的阈值比较。在嵌入式系统运行过程中,通过S300对设定监控变量的计数分别对周期任务、非周期任务以及最高优先级任务进行监控,并将监控变量的计数值与相应的阈值比较。具体来说,周期任务监控变量的计数值与周期任务的阈值比较,非周期任务监控变量的计数值与非周期任务的阈值比较,最高优先级任务监控变量的计数值与最高优先级任务的阈值比较。S500:当监控变量的计数值大于相应的阈值时,则认为该监控变量对应的任务已意外挂起,调用异常处理函数处理挂起的任务。当监控变量的计数值大于相应的阈值时,说明对应的任务出现异常,需要调用异常处理函数处理挂起的任务。具体来说,当周期任务监控变量的计数值大于周期任务的阈值时,说明对应的周期任务出现异常,调用异常处理函数处理该周期任务;当非周期任务监控变量的计数值大于非周期任务的阈值时,说明对应的非周期任务出现异常,调用异常处理函数处理该非周期任务;当最高优先级任务监控变量的计数值大于最高优先级任务的阈值时,说明最高优先级任务出现异常,调用异常处理函数处理该最高优先级任务。需指出的是,在判断时使用大于而不是大于或等于,是为了解决时间抖动问题,以保证异常触发的时长不至于比预期的时长少1个时间单位。具体来说,异常处理函数是预先设定的,其根据传入的任务优先级将异常任务登记到异常任务列表,异常任务列表是在存储器中的一段数据:用于记录异常任务的优先级,异常发生时的系统时间等信息。在产品开发阶段,通过串口或其他方式输出异常任务的优先级,系统时间,任务堆栈使用量等信息。在产品发布时,根据不同任务的重要程度执行不同的异常处理方式,比如可以采用唤醒、恢复甚至复位整个系统的手段,确保产品在出错时可以自动恢复。本专利技术嵌入式操作系统任务的监控方法,区分嵌入式操作系统任务类型,查找最高优先级任务,分别设定周期任务、非周期任务以及最高优先级任务的监控变量与相应的阈值,通过对监控变量的计数,分别对周期任务、非周期任务以及最高优先级任务进行监控,并将记录的监控本文档来自技高网...
嵌入式操作系统任务的监控方法与系统

【技术保护点】
一种嵌入式操作系统任务的监控方法,其特征在于,包括步骤:分析所有嵌入式操作系统任务,区分所述嵌入式操作系统任务类型,所述任务类型包括周期任务与非周期任务;找出所述嵌入式操作系统任务中最高优先级任务;分别设定所述周期任务、所述非周期任务以及所述最高优先级任务的监控变量与相应的阈值;通过所述对监控变量的计数,分别对所述周期任务、所述非周期任务以及所述最高优先级任务进行监控,并将监控变量的计数值与相应的阈值比较;当监控变量的计数值大于所述相应的阈值时,则认为该监控变量对应的任务已意外挂起,调用异常处理函数处理挂起的任务。

【技术特征摘要】
1.一种嵌入式操作系统任务的监控方法,其特征在于,包括步骤:分析所有嵌入式操作系统任务,区分所述嵌入式操作系统任务类型,所述任务类型包括周期任务与非周期任务;找出所述嵌入式操作系统任务中最高优先级任务;分别设定所述周期任务、所述非周期任务以及所述最高优先级任务的监控变量与相应的阈值;通过所述对监控变量的计数,分别对所述周期任务、所述非周期任务以及所述最高优先级任务进行监控,并将监控变量的计数值与相应的阈值比较;当监控变量的计数值大于所述相应的阈值时,则认为该监控变量对应的任务已意外挂起,调用异常处理函数处理挂起的任务。2.根据权利要求1所述的嵌入式操作系统任务的监控方法,其特征在于,所述分别设定所述周期任务、所述非周期任务以及所述最高优先级任务的监控变量与相应的阈值的步骤之前还包括:分析所述周期任务的时间周期,所述时间周期用于判断其他任务发生异常时所允许的最长的反馈时间;选取所述周期任务中时间周期能够通过计数值生成其他周期任务时间周期的周期任务为最优周期任务。3.根据权利要求2所述的嵌入式操作系统任务的监控方法,其特征在于,所述分别设定所述周期任务、所述非周期任务以及所述最高优先级任务的监控变量与相应的阈值步骤包括:设定所述周期任务的第一监控变量以及第一阈值,所述第一阈值为当所述周期任务中非最优周期任务发生异常时,允许的最长的反馈时间除以最优周期任务的时间周期;设定所述周期任务的第二监控变量以及第二阈值,所述第二阈值为当所述最优周期任务发生异常时,允许的最长的反馈时间除以所述周期任务中非最优周期任务的时间周期;设定所述非周期任务的第三监控变量以及第三阈值,所述第三阈值为所述最优周期任务的时间周期内,所述非周期任务允许循环执行的最大次数;设定所述最高优先级任务的第四监控变量以及第四阈值,所述第四阈值为当所述最高优先级任务发生异常时,允许的最长的反馈时间除以操作系统节拍函数的时间周期。4.根据权利要求3所述的嵌入式操作系统任务的监控方法,其特征在于,通过对所述监控变量的计数,分别对所述周期任务、所述非周期任务以及所述最高优先级任务进行监控,并将监控变量的计数值分别与相应的阈值比较的步骤包括:针对所述第一监控变量,在所述周期任务中清零,在所述最优周期任务中累加计数,将计数值与所述第一阈值比较;针对所述第二监控变量,在所述最优周期任务中清零,在所述周期任务中累加计数,将计数值与所述第二阈值比较;针对所述第三监控变量,在所述最优周期任务中清零,在所述非周期任务中累加计数,将计数值与所述第三阈值比较;针对所述第四监控变量,在所述最高优先级任务中清零,在操作系统节拍函数中累加计数,将计数值与所述第四阈值比较。5.根据权利要求4所述的嵌入式操作系统任务的监控方法,其特征在于,所述针对所述第四监控变量,在所述最高优先级任务中清零的步骤包括:当所述最高优先级任务为所述最优周期任务时,针对所述第四监控变量...

【专利技术属性】
技术研发人员:涂海胜李永伟刘辉余佳鑫仲兆峰郭伟文
申请(专利权)人:广州日滨科技发展有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1