CN1855066A - 单板任务异常检测及处理方法 - Google Patents

单板任务异常检测及处理方法 Download PDF

Info

Publication number
CN1855066A
CN1855066A CN 200510066188 CN200510066188A CN1855066A CN 1855066 A CN1855066 A CN 1855066A CN 200510066188 CN200510066188 CN 200510066188 CN 200510066188 A CN200510066188 A CN 200510066188A CN 1855066 A CN1855066 A CN 1855066A
Authority
CN
China
Prior art keywords
task
measured
board
status information
monitor
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
Application number
CN 200510066188
Other languages
English (en)
Inventor
余明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN 200510066188 priority Critical patent/CN1855066A/zh
Publication of CN1855066A publication Critical patent/CN1855066A/zh
Pending legal-status Critical Current

Links

Images

Abstract

一种单板任务异常检测及处理方法,其中单板任务异常检测方法包括:启动监控任务,扫描登记列表中的待测任务;获取待测任务状态信息;判断待测任务是否异常;记录检测结果。所述处理方法为如果任务异常,则执行该任务复位操作;如果该任务无法复位,则执行单板复位操作。或者通过用户命令从检测结果中获取记录的任务异常信息。这样能够保证系统正常运行,延长系统的MTBF(平均故障时间),提高系统的可靠性。

Description

单板任务异常检测及处理方法
技术领域
本发明涉及实时多任务系统,尤指一种单板任务异常检测及处理方法。
背景技术
目前实时多任务系统已经在各个领域得到越来越广泛的应用。所述实时多任务系统是根据需要由不同的任务来完成的,这些任务从宏观上来看是并发执行的。一般情况下,如果系统中的某个任务出现不可恢复的异常,如:程序跑飞,数据读写错误,内存越界等,操作系统会把该任务挂起(Suspend),隔离起来,以便减少对其他任务的影响,这时如果查询该任务的状态应该为“Suspend”。
通常实时多任务系统设计中,各个单板都采用看门狗来防止CPU死机或者某个任务长时间独占CPU资源,由一个任务定时触发清狗的,如果超时没有清狗,则将导致整个系统复位,这是为了防止异常情况系统死机。但是这样的设计存在一个缺陷:如果某些任务由于发生异常而被操作系统挂起,只是影响到一些或一个任务,此时由于喂狗任务是正常的,所以看门狗不起作用,则系统不会复位,但系统是不能正常运行和提供业务的。因此无法及时发现任务异常,定位问题,也就不能及时解决问题,造成系统不稳定。
发明内容
本发明解决的问题是提供一种单板任务异常检测及处理方法,有效定位任务异常问题及及时处理异常任务。
为解决上述问题,本发明单板任务异常检测方法包括:启动监控任务,扫描登记列表中的待测任务;获取待测任务状态信息;判断待测任务是否异常;记录检测结果。
相应地,本发明单板任务异常处理方法包括:启动监控任务,扫描系统中登记列表中的待测任务;获取待测任务状态信息;判断待测任务是否异常;如果任务异常,则执行该任务复位操作;如果该任务无法复位,则执行单板复位操作。
本发明另一单板任务异常处理方法包括:启动监控任务,扫描登记列表中的待测任务;获取待测任务状态信息;判断待测任务是否异常;记录检测结果;通过用户命令从检测结果中获取记录的任务异常信息。
在单板初始化时创建监控任务。所述监控任务定时启动。任务状态信息通过:调用待测任务对应的任务控制块获得或通过调用函数TaskinfoGet()获得指定任务状态信息。
任务复位操作通过系统调用直接复位该任务或者先删除该任务,再重新创建该任务。
与现有技术相比,本发明具有以下优点:
本发明为多任务实时系统增加一个独立的监控任务,这个监控任务可以应用于任何类似的实时系统中,监控其他任务的状态,判断是否异常,并对异常的任务进行处理,这样能够保证系统正常运行,延长系统的MTBF(平均故障时间),提高系统的可靠性。
附图说明
图1是本发明单板任务异常检测方法;
图2是本发明单板任务异常处理方法。
具体实施方式
本发明是为多任务实时系统增加一个独立的监控任务,该监控任务可以应用于任何类似的实时系统中。这个监控任务的目的就是监视系统中其他任务的状态,判断是否正常,并对异常的任务进行处理,这样能够及时定位问题,采取措施,保证系统正常运行,延长系统的MTBF(平均故障时间),提高系统的可靠性。
请参照图1所示,本发明单板任务异常检测方法,包括:启动监控任务,扫描登记列表中的待测任务;获取待测任务状态信息;判断待测任务是否异常;记录检测结果以便问题定位,例如,可以通过用户命令从检测结果中获取记录的任务异常信息,作为调测手段是很有效的。
请参照图2所示,本发明单板任务异常处理方法,包括:启动监控任务,扫描系统中登记列表中的待测任务;获取待测任务状态信息;判断待测任务是否异常;如果任务异常,则执行该任务复位操作;如果该任务无法复位,则执行单板复位操作。
在单板初始化时,创建系统的监控任务以及对应的周期定时器,周期定时器的目的是周期性地向监控任务消息队列发送定时器消息,触发监控任务进行任务监控。之后该监控任务从任务消息队列中获取消息,分辨消息类型,如果是监控任务周期定时器消息,则开始扫描监测任务异常并进行相关处理;如果是用户命令消息,则根据用户指令获取并上报系统中异常任务相关信息。
在RTOS(支持实时系统运行的操作系统)环境下,操作系统在每个任务创建时都为这个任务分配一个独立的任务控制块(TCB),各个任务的相关信息,如:任务入口、堆栈地址、堆栈大小、任务状态、堆栈使用情况等信息都是存放在这个任务控制块中的。可以通过调用实时操作系统提供的系统调用接口从TCB中获取该任务状态信息,如,调用函数taskTcb()获取TCB中对应任务状态信息。实时操作系统的TCB结构可以查看相关的手册得到,这里不详细列出。或者直接调用操作系统的系统调用获取各个任务状态信息,例如,直接调用函数taskInfoGet(),可以获取指定任务的任务状态;或者采用以上方法的组合判断。
如果任务状态为以下几种状态,则认为该任务异常:SUSPEND、DELAY+S、PEND+S或PEND+S+T;另外可以通过堆栈使用情况判断是否存在越界,越界的任务则认为异常;或者采用以上方法的组合判断。
在任务出现异常时,直接复位该任务,重新初始化,复位后返回获取待测任务状态信息步骤。其中任务复位实现方式:调用操作系统的系统调用,如:taskRestart(int tid),可以复位指定的任务,其中tid为任务的标识符;或者,先删除该任务,然后重新创建该任务来重启该任务:用操作系统的系统调用taskDelete()可以删除指定的任务,用taskSpawn()可以重新创建改任务。
如果任务无法复位,则进行单板复位。
下面以vxWorks环境为例说明该任务的实现。
vxWorks提供的相关系统调用如下:
taskLib.h:定义与任务管理相关的系统调用;
taskIdVerify()-verify the existence of a task;
taskTcb()-get the task control block for a task ID;
taskIsSuspended()-check if a task is suspended;
监控任务实现的架构如下:
Void taskMonitor(void)
  {
        for(;;)
        {
           从消息该任务消息队列中获取消息;
           switch(消息类型)
           {
               case扫描时间到:
                     循环顺序扫描系统中所有需要监控的任务列表;
                     if(任务异常)
                     {
                         记录该任务检测结果;
                         复位该任务;
                      if(该任务无法恢复)
                      {
                         复位单板;
                       }
                   }
               case用户命令:
                  获取任务状态信息;
                  上报任务状态信息;
              default:
                 ...
          }
      }
  }
本发明提供一种简单有效的实时多任务环境下检测和处理任务异常的方法,提高系统的可靠性。同时通过这种方法还可以把异常任务的检测结果获取出来,以方便问题的定位和解决,也增加系统调测的手段。

Claims (9)

1.一种单板任务异常检测方法,其特征在于,包括:
启动监控任务,扫描登记列表中的待测任务;
获取待测任务状态信息;
判断待测任务是否异常;
记录检测结果。
2.如权利要求1所述的单板任务异常检测方法,其特征在于,所述监控任务定时启动。
3.如权利要求1所述的单板任务异常检测方法,其特征在于,还包括:在单板初始化时创建监控任务。
4.如权利要求1至3任一项所述的单板任务异常检测方法,其特征在于,任务状态信息通过:调用待测任务对应的任务控制块获得或通过调用函数TaskinfoGet()获得指定任务状态信息。
5.一种单板任务异常处理方法,其特征在于,包括:
启动监控任务,扫描系统中登记列表中的待测任务;
获取待测任务状态信息;
判断待测任务是否异常;
如果任务异常,则执行该任务复位操作;
如果该任务无法复位,则执行单板复位操作。
6.如权利要求5所述的单板任务异常处理方法,其特征在于,任务复位操作通过系统调用直接复位该任务或者先删除该任务,再重新创建该任务。
7.如权利要求5或6所述的单板任务异常处理方法,其特征在于,还包括:在单板初始化时创建监控任务。
8.如权利要求5或6所述的单板任务异常处理方法,其特征在于,任务状态信息通过:调用待测任务对应的任务控制块获得或通过调用函数TaskinfoGet()获得指定任务状态信息。
9..一种单板任务异常处理方法,其特征在于,包括:
启动监控任务,扫描登记列表中的待测任务;
获取待测任务状态信息;
判断待测任务是否异常;
记录检测结果;
通过用户命令从检测结果中获取记录的任务异常信息。
CN 200510066188 2005-04-21 2005-04-21 单板任务异常检测及处理方法 Pending CN1855066A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200510066188 CN1855066A (zh) 2005-04-21 2005-04-21 单板任务异常检测及处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200510066188 CN1855066A (zh) 2005-04-21 2005-04-21 单板任务异常检测及处理方法

Publications (1)

Publication Number Publication Date
CN1855066A true CN1855066A (zh) 2006-11-01

Family

ID=37195249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200510066188 Pending CN1855066A (zh) 2005-04-21 2005-04-21 单板任务异常检测及处理方法

Country Status (1)

Country Link
CN (1) CN1855066A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100465856C (zh) * 2007-03-02 2009-03-04 华为技术有限公司 实现单板强制复位的方法和系统
CN101145992B (zh) * 2007-09-11 2010-08-18 中兴通讯股份有限公司 单板任务异常检测方法与系统
CN102231124A (zh) * 2011-07-18 2011-11-02 深圳市科陆电子科技股份有限公司 一种嵌入式系统任务的守护方法
CN103631702A (zh) * 2012-08-20 2014-03-12 腾讯科技(深圳)有限公司 自动化随机按键测试方法及装置
CN113242437A (zh) * 2021-04-01 2021-08-10 联通(广东)产业互联网有限公司 一种rtsp协议视频无插件播放方法、系统、装置及存储介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100465856C (zh) * 2007-03-02 2009-03-04 华为技术有限公司 实现单板强制复位的方法和系统
CN101145992B (zh) * 2007-09-11 2010-08-18 中兴通讯股份有限公司 单板任务异常检测方法与系统
CN102231124A (zh) * 2011-07-18 2011-11-02 深圳市科陆电子科技股份有限公司 一种嵌入式系统任务的守护方法
CN102231124B (zh) * 2011-07-18 2017-08-29 深圳市科陆电子科技股份有限公司 一种嵌入式系统任务的守护方法
CN103631702A (zh) * 2012-08-20 2014-03-12 腾讯科技(深圳)有限公司 自动化随机按键测试方法及装置
CN103631702B (zh) * 2012-08-20 2018-01-30 腾讯科技(深圳)有限公司 自动化随机按键测试方法及装置
CN113242437A (zh) * 2021-04-01 2021-08-10 联通(广东)产业互联网有限公司 一种rtsp协议视频无插件播放方法、系统、装置及存储介质

Similar Documents

Publication Publication Date Title
US8843684B2 (en) Performing call stack sampling by setting affinity of target thread to a current process to prevent target thread migration
CN1808386A (zh) 处理多线程/多任务/多处理器的方法
CN1855066A (zh) 单板任务异常检测及处理方法
CN1725187A (zh) 在计算机上当软件崩溃时保存用户数据的方法及装置
CN1801106A (zh) 用于计算机系统中的多个分区的错误监视的方法
CN1959652A (zh) 在分布式调试器中调试计算机程序的方法和装置
CN1665200A (zh) 多事件服务器系统的带故障恢复的事件所有权分配器
US20080320336A1 (en) System and Method of Client Side Analysis for Identifying Failing RAM After a User Mode or Kernel Mode Exception
CN102521098B (zh) Cpu死机监控的处理方法和装置
CN1885275A (zh) 一种嵌入式系统及其实时内存监控处理方法
CN102999343A (zh) 禁止启动项目自启动的方法和装置
CN1286429A (zh) 一种嵌入处理机内存的检测和监控方法
CN1832417A (zh) 一种数据采集方法及系统
CN1940884A (zh) 计算机系统、计算机网络及其方法
US9176783B2 (en) Idle transitions sampling with execution context
US20120246518A1 (en) Operating a computer system
CN1776644A (zh) 一种基于有限状态机的对内存变量改写进行监控的方法
CN103019706A (zh) 针对启动项目的处理方法和装置
JP2011034552A (ja) 情報処理装置、情報処理方法および情報処理プログラム
CN1942863A (zh) 用于在奇偶错误检测之后维持数据完整性的装置和方法
CN1855067A (zh) 一种实时操作系统中任务挂起状态监控方法
CN101145983A (zh) 一种网管系统的自诊断和自恢复子系统及方法
US8537662B2 (en) Global detection of resource leaks in a multi-node computer system
CN1756377A (zh) 一种检测单板故障的方法
CN101042669A (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