首页> 中国专利> 一种基于看门狗和定时器的周期任务可靠性的监控方法

一种基于看门狗和定时器的周期任务可靠性的监控方法

摘要

本发明公开了一种基于看门狗和定时器的周期任务可靠性的监控方法。本发明采用任务多状态的管理方法,允许任务具有临时状态的方法和任务的报告机制,并结合了看门狗的超时重启恢复系统的功能和定时器的计时功能,增加使用定时器来衡量周期任务的执行时间,加强了对周期任务的运行可靠性的监控;同时,基于看门狗自动重新启动的功能保证了系统在异常情况下的自动恢复;还能监测周期任务运行时间是否符合要求;而且允许配置周期任务报告数量有误差,以及增加的“临时状态”大大减小了对周期任务“异常”的误判,因而可以减少系统的错误的重新启动。

著录项

  • 公开/公告号CN101216798A

    专利类型发明专利

  • 公开/公告日2008-07-09

    原文格式PDF

  • 申请/专利权人 浙江大学;

    申请/专利号CN200810059147.2

  • 申请日2008-01-14

  • 分类号G06F11/30(20060101);

  • 代理机构33200 杭州求是专利事务所有限公司;

  • 代理人林怀禹

  • 地址 310027 浙江省杭州市西湖区浙大路38号

  • 入库时间 2023-12-17 20:28:06

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-12-28

    未缴年费专利权终止 IPC(主分类):G06F11/30 授权公告日:20100310 终止日期:20180114 申请日:20080114

    专利权的终止

  • 2010-03-10

    授权

    授权

  • 2008-09-03

    实质审查的生效

    实质审查的生效

  • 2008-07-09

    公开

    公开

说明书

技术领域

本发明涉及计算机领域,特别涉及一种基于看门狗和定时器的周期任务的可靠性监控方法。

背景技术

嵌入式实时操作系统一般由任务调度管理、时间管理、任务同步和通信、内存管理等几部分组成。实时操作系统中又经常会出现周期性的任务,对于周期性任务的可靠性需要进行有效的监控,即监控任务是否正常运行和任务的运行时间是否符合要求。看门狗是嵌入式系统中经常用来监控系统是否正常运行的重要硬件设备。看门狗是一个系统的自动计数器,当看门狗计数到达它的最高计数值时,会重新启动整个系统。一般使用看门狗的方法是在系统运行的任务里,每隔一段时间清零看门狗计数器,称“喂狗”,证明系统正常运行;如果很长时间没去给看门狗清零,看门狗超出了它的最高计数值时,认为系统出错,系统就会重新启动。

从目前普遍使用看门狗监控周期任务可靠性的方法中,可以看到,这些方法使用看门狗的方法比较简单且缺乏稳定性:看门狗清零的时间要求过于苛刻,因此可能会出现错误重启系统的状况;另外传统使用看门狗的方法没有对周期任务的时间约束的监控。

发明内容

为了解决只用看门狗监控周期任务时,由于周期任务的运行时间发生了微小的变化而导致系统错误重新启动的问题,并能有效监控周期任务的运行时间是否符合要求,本发明的目的在于提供一种基于看门狗和定时器的周期任务可靠性的监控方法。

本发明解决其技术问题所采用的技术方案是该方法的步骤如下:

1)先为每一个周期任务设定一个正常报告变量(aliveCounter),即周期任务需要在每一个预先设定的时间间隔内向系统报告自身是否正常,以及预期在一个监控周期内,预期的正常报告数量(expectedAlive)和允许的误差(tolerance),当周期任务运行时,每报告一次,正常报告变量(aliveCounter)增加1,系统需要设定监控周期,系统要检查每一个监控周期到达时,周期任务的正常报告变量是否满足预期目标,满足预期目标是指,正常报告变量的值范围在[expectedAlive-tolerance,expectedAlive+tolerance],同时将正常报告变量清零;

2)周期任务允许有多次证明自身正常运行的机会,周期任务会有一个状态的转换,周期任务的初始状态为“正常”,当周期任务在一个监控周期到达时,正常报告数量(aliveCounter)没有达到误差范围内的预期目标,周期任务将进入“临时”的状态,此时,周期任务将被允许继续执行多个监控周期,若在这些监控周期内,只要有一次周期任务的正常报告数量达到了预期正常报告数量,那么周期任务将被认为正常运行,再次回到“正常”状态;否则,在这些监控周期内,周期任务都没有达到预期的目标,那么周期任务将被认为运行“异常”;

3)硬件的看门狗计数器将一直被定时器以固定的周期,在到达其看门狗计数器峰值之前被清零;但是,当周期任务被认为异常运行时,即进入“异常”状态时,那么硬件的看门狗计数器将不再被清零,即系统会在看门狗计数器峰值到达后重新启动。

由于监控的任务是周期性任务,因此选择在周期任务每次运行时报告一次,或选择报告多次,依任务周期长短而定。

第2)步中,周期任务进入“临时”状态以后,将被允许继续执行多个监控周期,监控周期的个数是可以配置的。

第3))步中,看门狗计数器被清零的周期是小于看门狗计数器到达峰值的周期,保证系统在正常运行时,不会自动重启;而发现有周期任务异常时,看门狗计数器将不会被清零,此时保证系统会重新启动。

本发明具有的有益效果是:

本发明专利结合了看门狗的超时重启恢复系统的功能和定时器的计时功能,增加使用定时器来衡量周期任务的执行时间,加强了对周期任务的运行可靠性的监控;同时,基于看门狗自动重新启动的功能保证了系统在异常情况下的自动恢复;还能监测周期任务运行时间是否符合要求;而且允许配置周期任务报告数量有误差,以及增加的“临时状态”大大减小了对周期任务“异常”的误判,因而可以减少系统的错误的重新启动。

附图说明

图1是本发明方法中的被监控周期任务状态转换图。

图2是本发明所述的硬件看门狗计数器被清零的序列图。

图3是本发明所述的实例中各个任务中的变量和状态序列图1。

图4是本发明所述的实例中各个任务中的变量和状态序列图2。

图5是本发明所述的实例中看门狗计数器的清零时序图。

具体实施方式

下面结合附图和实例对本发明所述的基于看门狗和定时器监控周期任务的方法作进一步的介绍。

这里指的周期任务可靠性监控方法主要使用了2中硬件资源:看门狗和定时器。其中定时器用于测量周期任务的运行时间,并在一定的测量周期内监控任务是否正常运行;而看门狗仅使用它的自动重新启动系统的功能,即当发现有周期任务不正常运行,或不符合预期时间要求时,重新启动整个系统。

1.先为每一个周期任务设定一个正常报告变量(aliveCounter),即周期任务需要在每一个预先设定的时间间隔内向系统报告自身是否正常,以及预期在一个监控周期内,预期的正常报告数量(expectedAlive)和允许的误差(tolerance)。当周期任务运行时,每报告一次,正常报告变量(aliveCounter)增加1。系统需要设定监控周期,系统要检查每一个监控周期到达时,周期任务的正常报告变量是否满足预期目标,满足预期目标是指,正常报告变量的值范围在[expectedAlive-tolerance,expectedAlive+tolerance]。同时将aliveCounter清零。

2.如图1所示,周期任务允许有多次证明自身正常运行的机会,周期任务会有一个状态的转换。周期任务的初始状态为“正常”,当周期任务在一个监控周期到达时,正常报告数量(aliveCounter)没有达到误差范围内的预期目标,周期任务将进入“临时”的状态。此时,周期任务将被允许继续执行多个监控周期,若在这些监控周期内,只要有一次周期任务的正常报告数量达到了预期正常报告数量,那么周期任务将被认为正常运行,再次回到“正常”状态;否则,在这些监控周期内,周期任务都没有达到预期的目标,那么周期任务将被认为运行“异常”。

3.如图2所示,硬件的看门狗计数器将一直被定时器以固定的周期,在到达其计数器峰值之前被清零。但是,当周期任务被认为异常运行时,即进入“异常”状态时,那么硬件的看门狗计数器将不再被清零,即系统会在看门狗计数值到达后重新启动。

下表显示了在MC9S12DP256开发板里,某个系统中共有4个被监控的周期任务,其任务周期,预期正常报告数量和允许的误差,系统的监控周期为250个计时单位。因此,我们可以知道,在250个计时单位的监控周期内,每个周期任务的正常报告数量(aliveCounter)的值的取值范围,在表的最后一列。

  任务名称  监控周期  (计时单位)  任务周期  (计时单位)  预期正常报告  数量(次)  允许误差  (次)  允许取值范围  (次)  任务A  250  30  8  1  7~9  任务B  30  8  2  6~10  任务C  40  6  1  5~7  任务D  60  4  1  3~5

如图3,图4所示,显示了在该系统上运行的4个周期任务在一些关键时刻的运行状态。每个周期任务的aliveCounter在系统开始运行的时候被初始化为0,周期任务每运行一次就将aliveCounter加1,证明周期任务在正常运行。任务A和任务B在时刻30的时候,aliveCounter的值都由0时刻的0变成了1,任务C和任务D在系统时刻为40和60的时候变成了1,以此类推。当到达系统的监控周期时,即250,系统检查每一个周期任务的aliveCounter的值是否在预期的范围之内。

此时,任务A和任务C并没有在范围之内:任务A的aliveCounter值为6,不在7~9之间;任务C的值为4,不在5~7之间。而任务B和任务D的aliveCounter都在允许的取值范围之内。因此,系统认为任务B和任务D运行正常,任务A和任务C的运行出现了不正常。但不判定任务A和任务C已经“异常”运行,系统再一次给任务A和任务C证明自己正常的机会,将任务A和任务C放入“临时”状态。系统允许再次在一个监控周期内监控任务A和任务C是否能达到允许的取值范围。

如图4所示,任务A在系统时刻500时,aliveCounter为7,在7~9的取值范围内,因此系统判定任务A此时运行正常,再次进入“正常”状态;而任务C在第二个监控周期到达,即系统时刻500时,aliveCounter为3,仍然没有在5~7的允许取值范围内,因此判定任务C异常运行。

另一方面,如图5所示,看门狗计数器到到达峰值的周期为100个计时单位,系统的看门狗的清零周期为50个计时单位,因此在所有任务“正常”和“临时”的情况下,看门狗总能在到达峰值前清零,使系统不会重新启动。

因此,上述在时刻500时,当发现任务C有“异常”时,此时系统将不再为看门狗清零,而是任其在100个计时单位到达后,自动重新启动系统。这样做,保证了系统复位以后,能继续运行。

还有,上述实例中出现了有周期任务“异常”使得系统需要重新启动,以确保恢复运行。而当系统中一直没有出现周期任务“异常”时,系统将被认为一直在正常运行,而不会停止对看门狗计数器的清零。

综上所述,本发明采用的基于看门狗计数器和定时器监控周期任务可靠性的方法,大大降低了对周期任务是否正常的误判率,节省了系统重新启动的次数,保证了系统的正常、可靠运行,而且维护、操作方法简单,实现容易。

最后,还需要注意的是,以上列举的仅是本发明的具体实施例子。显然,本发明不限于以上实施例子,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号