多线程看门狗监控方法

文档序号:6599512阅读:2351来源:国知局
专利名称:多线程看门狗监控方法
技术领域
本发明涉及多线程看门狗监控技术,尤其涉及一种在线程执行时间不确定的前提
下看门狗监控的实现方法。
背景技术
众所周知,嵌入式产品一般对工作环境的要求比较苛刻,而且要求全天候运行。因 此,为保证嵌入式系统的高可靠性和稳定性,现有技术一般都会在嵌入式系统中加入软件 看门狗,与外部的硬件看门狗相配合,保证嵌入式系统的自我恢复性。 硬件看门狗一般需要软件输出周期性的电平变换(此动作称为"喂狗")来确认 系统处于正常的运行状态,如无周期性的电平变换则会触发复位信号,使系统复位。因此软 件输出变化电平的周期性显得尤为重要。 在现有的嵌入式系统中,整个嵌入式程序都属于整个循环中,进行周期性的执行, 看门狗设计者只需要在此循环中分段插入"喂狗"操作,便可以检测整个系统的运行情况。
但是随着嵌入式系统的复杂性提高,原有的单循环系统被拆分为多进程多线程系 统,因此嵌入式系统就需要监控每一个线程的运行情况才能最终保证整个系统的稳定性。
中国专利公开号CN1547125、 CN101295271A发明中均提及了采用线程进行看门狗 监控的情况,并对如何保证看门狗的稳定性提出了一些技术设想。但对看门狗监控技术的 核心环节如何根据各线程的特点来定制每个线程的执行时间,并能够辨别线程因等待资 源而合理挂起的情况,却未提供解决的方案。因此上述技术方案在具体实施中还存在技术 空白。

发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种实时、有效、 可控的多线程看门狗监控方法。 为实现上述目的,本发明提供了一种多线程看门狗监控方法,至少包括以下步 骤 步骤一,初始化看门狗监控队列; 步骤二,建立看门狗监控进程,将本步骤的监控线程定义为最高优先级,周期执行 时间为Tl ; 步骤三,创建其他应用线程,在创建其他应用线程时根据需要设定是否进行看门 狗监控;如需要,则设置看门狗监控的开始时间T2和执行时间T3 ; 步骤四,如果线程中有阻塞资源,在阻塞前先关闭该线程的看门狗监控;否则跳至 步骤六; 步骤五,等待步骤五中所述阻塞资源有效; 步骤六,开启该线程的看门狗监控,重置开始时间和执行时间为T2, T3 ;
步骤七,监控线程等待定时信号,定时检测看门狗监控队列;
步骤八,检测监控对象的开始时间是否达到,未到达返回步骤七; 步骤九,检测到监控对象中剩余时间小于O,则判断该线程为异常,回收该线程
(或通过硬件看门狗复位系统),返回步骤三; 步骤十,将该线程执行时间减去Tl,返回步骤六; 步骤十一,在功能线程执行一次循环后,返回步骤四。 与现有技术的软件看门狗相比,现有技术的软件看门狗无法根据各线程自身的特 点来制定每个线程的执行时间,并无法分辨线程是因等待资源而合理挂起还是运行出现异 常而挂起的缺陷,而本发明是一种有效、可控的看门狗的监控方法。 以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以 充分地了解本发明的目的、特征和效果。


图1是本发明一具体实施例的流程图。
具体实施例方式
如图1所示,本发明的多线程看门狗监控方法一具体实施例包括以下步骤
步骤一,创建监控守护线程,此线程具有较高的优先级,并且此线程与监控的其它 功能线程属于不同的进程,功能单一,以避免受到其他线程影响。 步骤二,创建监控队列,进行初始化。为了能够和其他进程共享此监控队列,通过 采用一资源共享机制,以便于和其他进程进行共享。 在不同具体实施例中,上述的资源共享机制可以是共享内存,有名消息队列,有
名管道等之一。 步骤三,监控守护进程挂起,等待定时器发送的定时信号量,执行周期为Tl。
步骤四,此时其他功能线程开始创建,并运行。 步骤五,如果该线程需要监控线程进行监控,设置此线程的开始监控时间为T2,执 行时间为T3。此参数可根据线程的具体需求进行单独设置,从而达到为每一个线程进行定 制的技术效果。 步骤六,如果线程在运行过程中阻塞其他资源,则在阻塞之前,关闭此线程的看门 狗监控,防止由于阻塞造成线程执行的不确定性。
步骤七,功能线程处于挂起状态,等待信号。 步骤八,在等待到信号之后,重新设置该线程的开始时间和执行时间。
步骤九,再次开启此线程的看门狗监控。 步骤十,此时监控线程的执行周期到来,监控线程被唤醒执行,开始遍历监控队列 中的监控对象状态。 步骤十一,如果线程的开始监控时间T2小于监控进程的执行周期Tl,则跳至步骤十三。 步骤十二,如果线程的开始监控时间T2大于监控进程的执行周期Tl,则表示该线 程还未进入监控范围,开始监控时间T2 = T2-T1,进行监控时间重新赋值;然后跳至步骤
4
步骤十三,如果线程的执行剩余时间T3小于监控进程的执行周期Tl,则跳至步骤 十五。 步骤十四,如果线程的执行剩余时间T3大于监控进程的执行周期Tl,则表示该线 程执行时间尚未用完,处于合法的监控范围之内。T3 = T3-T1。
步骤十五,表示该线程运行出现异常,应回收该线程。 在不同实施例中,还可以根据需要重新创建该异常功能线程,或者复位整个系统。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创 造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员 依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术 方案,皆应在本发明的权利要求保护范围内。
权利要求
一种多线程看门狗监控方法,至少包括以下步骤步骤一,初始化看门狗监控队列;步骤二,建立看门狗监控进程,将本步骤的监控线程定义为最高优先级,周期执行时间为T1;步骤三,创建其他应用线程,在创建其他应用线程时根据需要设定是否进行看门狗监控;如需要,则设置看门狗监控的开始时间T2和执行时间T3;步骤四,如果线程中有阻塞资源,在阻塞前先关闭该线程的看门狗监控;否则跳至步骤六;步骤五,等待步骤五中所述阻塞资源有效;步骤六,开启该线程的看门狗监控,重置开始时间和执行时间为T2,T3;步骤七,监控线程等待定时信号,定时检测看门狗监控队列;步骤八,检测监控对象的开始时间是否达到,未到达返回步骤七;步骤九,检测到监控对象中剩余时间小于0,则判断该线程为异常,回收该线程(或通过硬件看门狗复位系统),返回步骤三;步骤十,将该线程执行时间减去T1,返回步骤六;步骤十一,在功能线程执行一次循环后,返回步骤四。
全文摘要
本发明公开了一种多线程看门狗监控方法,主要包括初始化看门狗监控队列并建立看门狗监控进程;创建其他应用线程;如线程中有阻塞,在阻塞前先关闭该线程的看门狗监控并等待阻塞资源有效;如无阻塞则开启该线程的看门狗监控;监控线程等待定时信号,定时检测看门狗监控队列;检测监控对象的开始时间是否达到,未到达则返回等待步骤;检测到监控对象中剩余时间小于0,则判断该线程为异常,回收该线程(或通过硬件看门狗复位系统),返回创建其他应用线程步骤;否则,将该线程执行时间减去T1,返回开启看门狗监控步骤;在功能线程执行一次循环后再次返回。本发明是一种有效、可控的看门狗的监控方法。
文档编号G06F11/00GK101794244SQ20101012776
公开日2010年8月4日 申请日期2010年3月18日 优先权日2010年3月18日
发明者郝盼 申请人:上海乐毅信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1