CN1595368A - 多任务系统的异常监控装置及其方法 - Google Patents

多任务系统的异常监控装置及其方法 Download PDF

Info

Publication number
CN1595368A
CN1595368A CN 03157874 CN03157874A CN1595368A CN 1595368 A CN1595368 A CN 1595368A CN 03157874 CN03157874 CN 03157874 CN 03157874 A CN03157874 A CN 03157874A CN 1595368 A CN1595368 A CN 1595368A
Authority
CN
China
Prior art keywords
task module
task
module
counter
application task
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.)
Granted
Application number
CN 03157874
Other languages
English (en)
Other versions
CN100359481C (zh
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 CNB031578748A priority Critical patent/CN100359481C/zh
Publication of CN1595368A publication Critical patent/CN1595368A/zh
Application granted granted Critical
Publication of CN100359481C publication Critical patent/CN100359481C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明涉及电子系统的异常检测和处理,公开了一种多任务系统的异常监控装置及其方法,使得多任务系统的异常监控和自动复位到正常运行状态的功能得到实现。这种多任务系统的异常监控装置包含一个用于在计数溢出时触发所述多任务系统复位的看门狗计数器,所述异常监控装置还包含一个监控任务模块,至少一个应用任务模块;其中,所述监控任务模块用于周期性清空所述看门狗计数器,对所述应用任务模块进行异常处理,以及触发系统复位;所述应用任务模块用于实现所述多任务系统的功能并向所述监控任务模块报告运行状态。

Description

多任务系统的异常监控装置及其方法
技术领域
本发明涉及电子系统的异常检测和处理,特别涉及多任务电子系统的异常检测和处理。
背景技术
目前,无论在通信、计算机、自动控制领域的软件或硬件系统中,多任务并行的设计方法由于其对资源高效使用的特点而被广泛采用。随之而来的一些新问题也有待更好的解决,而多任务系统的异常监控问题就是其中一个。这个问题在当前新兴的多任务嵌入式系统技术中尤为突出。
在许多情况下,设计人员会用软件实现以往由硬件才能完成的电路功能,其中部分原因是低成本的微处理器(Micro Processor,简称″μP″)为大家提供了广泛的选择。软件常常是解决问题成本最低、灵活性最高的方案,但它也迫使设计人员进行一些额外的测试以确保系统的可靠性。软件实现的系统特别是当前流行的嵌入式系统由于程序代码设计出现的没有被发现的错误,容易引起系统运行的异常,同时系统的硬件部分的不稳定也经常会导致系统运行的异常。在台式机系统中出现导致系统瘫痪的软件错误并不可怕,因为用户只需重新启动系统即可,它只会造成少量数据的丢失。然而,对于应用在工控系统中的嵌入式系统,则必须能够在没有人为干预的条件下处理异常、恢复故障。这一特性在两种情况下非常关键:一种是高有效性系统,如服务器、电话系统以及生产线等;另一种是高可靠性系统,因为这种系统一旦出现错误将造成伤害,如汽车、医疗设备、工业控制、机器人、自动门等。即使不考虑这些要求严格的应用,系统在无需用户干预的条件下自动(按下复位键或重新上电)从故障状态下恢复也是很有益处的,这种设备的好处是显而易见的,因为用户不希望设备内部出现问题。改善这类系统可靠性的一种简单、有效的措施是采用异常监控机制,在普通的嵌入式系统中被称为看门狗(Watching Dog)。看门狗是一种用于监控系统运行情况的机制,当系统运行出现不能自我控制的异常时,为系统提供强制复位功能,用以恢复系统正常运行。
在单任务系统中看门狗技术已经比较成熟,基本的实现方法是在硬件上实现一个看门狗计数器,系统上电后看门狗计数器开始计数,当看门狗计数器发生溢出时就会导致系统复位。在软件上,把清空看门狗计数器的功能与系统正常功能捆绑到一起(一般是在任务循环体中插入清空看门狗计数器的操作),这样一方面系统正常运行时,软件能够周期的将看门狗计数器清空,看门狗计数器不会发生溢出;另一方面,如果系统运行出现异常,程序无法实现正常功能时,由于清空看门狗计数器的功能与系统正常功能捆绑在一起,程序也就无法清空看门狗计数器,超过预定时间后,看门狗计数器必然发生溢出,导致系统复位。这样就实现了系统故障情况下的自动复位恢复。
在实际应用中,上述方案存在以下问题:无法应用于多任务系统中,实现多任务系统中的异常监控。
造成这种情况的一个主要原因在于,目前的技术都是针对单任务系统的,只能保证单个任务的正常运行与异常监控,无法应用于多任务系统。例如,一个系统中存在三个任务,每一个任务的循环体中都有清空看门狗计数器的操作,则当其中两个任务发生出现异常时,因为还有一个任务依然在周期性地将看门狗计数器清空,因此系统无法自动复位,导致看门狗失去意义。
发明内容
本发明要解决的技术问题是提供一种多任务系统的异常监控装置及其方法,使得多任务系统的异常监控和自动复位到正常运行状态的功能得到实现。
为了解决上述技术问题,本发明提供了一种多任务系统的异常监控装置,包含一个用于在计数溢出时触发所述多任务系统复位的看门狗计数器,所述异常监控装置还包含一个监控任务模块,至少一个应用任务模块;其中,
所述监控任务模块用于周期性清空所述看门狗计数器,对所述应用任务模块进行异常处理,以及触发系统复位;
所述应用任务模块用于实现所述多任务系统的功能并向所述监控任务模块报告运行状态。
其中,还包含:
至少一个与所述应用任务模块相应的任务状态报告计数器;并且,
所述应用任务模块可以通过清空相应的所述任务状态报告计数器向所述监控任务模块报告运行状态;
所述监控任务模块可以对所述任务状态报告计数器进行计数操作,并根据计数值对所述应用任务模块进行相应的处理。
所述监控任务模块中任务运行的优先级高于所述应用任务模块中任务运行的优先级。
本发明还提供了一种多任务系统的异常监控方法,包含以下步骤:
监控任务模块在自身主循环体中清空看门狗计数器;
所述监控任务模块在自身主循环体中监控所有应用任务模块的异常情况;
所述应用任务模块在创建的时候向所述监控任务模块进行任务注册;
所述应用任务模块在自身主循环体中向所述监控任务模块报告运行状态。
其中,在所述监控任务模块监控所述应用任务模块的步骤中,进一步包含以下步骤:
所述监控任务定期检查应用任务对应的计数器,确定应用任务的状态,并进行相应的处理。
在所述应用任务模块向所述监控任务模块报告运行状态的步骤中,进一步包含以下步骤:
所述应用任务模块在自身主循环体中清空任务状态报告计数器。
在所述监控任务模块监控所有应用任务模块的异常情况的步骤中,进一步包含以下步骤:
A所述监控任务模块对所有应用任务模块相应的任务状态报告计数器进行计数操作;
B所述监控任务模块判断所述应用任务模块相应的任务状态报告计数器的计数值是否超过第一门限,如果是,则进入步骤C,否则进入步骤D;
C所述监控任务模块对所述应用任务模块进行异常处理;
D所述监控任务模块完成对所述应用任务模块的监控。
所述步骤C进一步包含以下子步骤:
C1所述监控任务模块判断所述应用任务模块相应的所述任务状态报告计数器的计数值是否超过第二门限,如果是,则进入步骤C2,否则进入步骤C3;
C2所述监控任务模块对所述应用任务模块进行进一步的异常处理;
C3所述监控任务模块调用所述应用任务模块的任务唤醒函数,并完成对所述应用任务模块的监控。
步骤C2进一步包含以下子步骤:
C21所述监控任务模块判断所述应用任务模块相应的所述任务状态报告计数器的计数值是否超过第三门限,如果是,则进入步骤C22,否则进入步骤C23;
C22所述监控任务模块保存现场并执行系统复位;
C23所述监控任务模块对所述应用任务模块进行任务恢复,如果任务恢复成功,则完成对本应用任务模块的监控,否则进入步骤C22。
在所述应用任务模块向所述监控任务模块进行的任务注册的步骤中,进一步包含以下子步骤:
所述监控任务模块为请求注册的应用任务模块分配一个任务运行状态报告计数器;
所述监控任务模块记录由请求注册的应用任务模块提供的任务唤醒函数地址。
所述任务唤醒函数执行的操作是为处于等待状态的被监控应用任务模块分配一个虚拟任务,使该应用任务模块由等待状态变为就绪状态。
通过比较可以发现,本发明的技术方案与现有技术的区别在于,通过设置专门的监控任务模块来监控多个应用任务模块的运行状态;通过原看门狗技术实现对监控任务模块的异常监控;通过任务状态报告计数器实现监控任务模块对应用任务模块的监控;通过任务唤醒函数的调用来唤醒等待状态的应用任务模块;通过任务注册的方法,实现任务状态计数器的分配和任务唤醒函数调用地址的传递。
这种技术方案上的区别,带来了较为明显的有益效果,即同时监控多任务系统中多个应用任务模块的运行状态,实现每一个应用任务模块的异常处理和自动恢复,实现多任务系统的异常监控,提高多任务系统的可靠性。当系统中的某一个应用任务模块长时间没有反应时,系统会先后采用唤醒、恢复直至重新复位整个系统的手段,只用一个看门狗硬件就确保了多任务系统中每一个任务都能处在正常的工作状态。
附图说明
图1是根据本发明的一个实施例的多任务系统的异常监控装置示意图;
图2是根据本发明的一个实施例的多任务系统的异常监控装置的监控任务模块的流程图;
图3是根据本发明的一个实施例的多任务系统的异常监控装置的应用任务模块的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
本发明涉及一种多任务系统的异常监控装置及其方法。所述多任务系统可以是应用于各个领域的软件、硬件系统,比如通信、计算机、自动控制领域的软件系统、硬件系统、嵌入式系统。所述多任务是指,系统中同时存在多个任务并行处理,不同任务之间协调占用CPU处理时间,或者由系统按照某种原则统一分配CPU处理时间给各个任务。所述多任务系统的硬件组成可以是现场可编程门阵列(Field Programmable Gate Array,简称″FPGA″),专用集成电路(Application Specific Integrated Circuit,简称″ASIC″),中央处理器(Central Processing Unit,简称″CPU″),数字信号处理(Digital SignalProcessing,简称″DSP″)芯片,复杂可编程器件(Complex Programmable LogicDevice,简称″CPLD″)等。
下面详细描述本发明的一个较佳实施例,该实施例是针对多任务嵌入式系统的。
在单任务系统看门狗技术的基础上,通过添加监控任务模块以及各模块之间的关系组成多任务嵌入式系统的异常监控装置。本实施例对硬件支撑的要求是能实现基本的看门狗计数器功能,即系统上电后软件必须在规定时间内周期性清空看门狗计数器,如果任何两次清空看门狗计数器的时间间隔超出了规定时间,看门狗计数器就会产生溢出,看门狗计数器溢出后会使该系统复位。这一点与单任务系统的看门狗对硬件支撑的要求一致。
在系统启动过程中清空看门狗计数器。由于系统启动过程中系统还处于单任务运行状态,该情况下系统执行的功能于与现有的单任务嵌入式系统看门狗技术相同,在正常运行出循环体中,捆绑清空看门狗计数器的操作,使得在正常运行时,看门狗计数器不会溢出;而出现异常时看门狗计数器不能及时清空,终将溢出,导致硬件复位,使系统恢复正常运行。
图1示出了根据本发明的一个较佳实施例的多任务系统的异常监控装置的结构及其组成。整个多任务系统的异常监控装置包含以下部分:监控任务模块101、应用任务模块102、看门狗计数器104、任务运行状态报告计数器103。
监控任务模块101是一个周期性执行的任务,该任务的功能就是清空看门狗计数器104和监控系统其它应用任务模块102的运行情况。清空看门狗计数器104的功能设在该任务循环体中,与监控其它应用任务模块运行状况的功能捆绑在一起。为保证监控任务模块101能够在规定时间间隔内,周期清空看门狗计数器104,该任务优先级设为低于操作系统任务优先级,而高于任何应用任务模块102优先级。
看门狗计数器104的功能是自动计数,并在监控任务模块101执行清狗操作114的时候置回初值重新计数,如果因为没有被及时清空而计数溢出时,自动执行硬件复位操作116。
应用任务模块102是普通的在系统中可以并行处理的任务,该任务在处理系统分配任务的同时在自身主循环体中执行清空相应的任务运行状态报告计数器103的操作112。也就是说清空任务运行状态报告计数器103的操作112设在该任务的循环体中,与正常运行的操作捆绑在一起。
任务运行状态报告计数器103由系统在创建应用任务模块102的同时被相应地创建,一般来说任务运行状态报告计数器103和应用任务模块102是一一对应的,有多少应用任务模块102就有多少任务运行状态报告计数器103。它功能是接收监控任务模块101的计数读数操作113,并在应用任务模块102执清空操作112的时候置回初值重新计数。
多任务的异常监控装置的基本思想是,在系统创建每个应用任务模块102的同时,向监控任务模块101进行任务注册;应用任务模块102开始运行后,定期通过清空操作112向监控任务模块101报告运行状态;如果超过预定时间后应用任务模块102未主动向监控任务模块101报告运行状态,监控任务模块101通过操作111核查该任务,并根据核查结果做相应的处理,比如软件复位115等。
所述应用任务模块102和相应的任务状态报告计数器103应该有多个,与其相关的操作也同时增加,图1为了简洁并未全部示出。
下面详细描述在本发明的一个较佳实施例中,各部分功能的实现方法。
应用任务模块的注册:在设计监控任务模块时,需要同时提供应用任务模块登记注册函数。该函数的功能是为请求注册的应用任务模块分配一个任务运行状态报告计数器,同时记录应用任务模块注册时提供的唤醒函数地址。唤醒函数用于将应用任务模块从等待状态转变为就绪状态,以防止正常等待状态的任务因为长时间没有执行清空相应任务运行状态报告计数器的操作而被监控任务模块误认为发生了异常。唤醒函数在应用任务模块设计时提供,在监控任务模块请求核查该应用任务模块时被监控任务模块调用。
监控任务模块的设计:下面参照图2,详细描述监控任务模块各个步骤及其功能。
当系统启动并运行监控任务模块后,进入循环体的第一个步骤201,监控任务模块清空看门狗计数器。当监控任务模块出现异常而不能清空看门狗计数器时,看门狗计数器将溢出,系统自动执行硬件复位操作,实现了监控任务模块本身的异常监控。
接着进入步骤202,监控任务模块释放一定长度的CPU处理时间。使得其他优先级较低的应用任务模块得以运行。
接着进入步骤203,监控任务模块对下一应用任务模块的任务运行状态报告计数器进行计数操作。
接着进入步骤204,判断该任务运行状态报告计数器是否超过门限1,如果是,说明该应用任务模块未在规定的时间内清空计数器操作,则进入步骤205;否则说明该任务运行正常,进入步骤211。在本发明的一个较佳实施例中,门限1定义为应用任务模块正常运行的周期门限。
在步骤205中,判断该任务运行状态报告计数器是否超过门限2,如果是,说明该应用任务模块未被唤醒,则进入步骤206;否则进入210。在本发明的一个较佳实施例中,门限2定义为应用任务模块唤醒时间+门限1。
在步骤206中,判断该任务运行状态报告计数器是否超过门限3,如果是,说明该对该应用任务模块恢复操作不起作用,进入步骤207;否则进入步骤208。在本发明的一个较佳实施例中,门限3定义为应用任务模块恢复时间+门限2。
在步骤207中,监控任务模块保存现场并进行软件复位,终止本流程。监控任务模块在发现某应用任务模块出现不能处理的异常而无法正常运行时,执行软件复位操作,强制复位系统。
在步骤208中,监控任务模块对该任务进行任务恢复,然后进入步骤209。监控任务模块发现某应用任务模块无法唤醒时,执行任务恢复操作,即删除该应用任务模块后重新启动该应用任务模块。
在步骤209中,判断任务恢复是否成功,如果是,进入211;否则,说明已无法通过任务恢复解决该应用任务模块的异常,进入步骤207。
在步骤210中,监控任务模块调用该任务的任务唤醒函数,然后进入步骤211。监控任务模块调用唤醒函数使得因为处在等待状态的时间较长而无法及时清空任务状态报告计数器的应用任务模块被唤醒,而得以运行并及时清空任务状态报告计数器。
在步骤211中,判断是否所有应用任务模块都已处理完毕,如果是,则返回步骤201;否则返回步骤203。监控任务模块保证每次循环对每个注册的应用任务模块进行一次核查,并根据核查结果做相应处理,核查完毕则重新执行循环体。
熟悉本领域的技术人员可以理解,所述监控任务模块的各个门限值、核查步骤及相应的处理方法可以根据具体系统的实际问题适当改变或增减,而不影响本发明的实质和范围。
应用任务模块设计:下面参照图3,详细描述在本发明的一个较佳实施例中应用任务模块的各个步骤及其功能。
当系统创建好该任务,并向监控任务模块进行了任务注册之后,该应用任务模块便进入就绪状态,等待系统运行。首先进入步骤301,应用任务模块进行初始化。
接着进入步骤302,应用任务模块清空相应的任务运行状态报告计数器。这是应用任务模块主循环体的第一个操作,保证应用任务模块在正常运行的情况下能及时清空相应的任务运行状态报告计数器,这一操作即向监控任务模块报告本应用任务模块运行在正常状态。
接着进入步骤303,判断系统是否有分配任务,如果是,则进入步骤304;否则说明该应用任务模块无需处理,则返回步骤303继续等待。
在步骤304中应用任务模块处理系统分配的任务,返回步骤302。应用任务模块处理完一次系统分配的任务后,重新执行主循环体。
熟知本领域的技术人员可以理解,在满足将正常运行的功能和清空任务状态报告计数器的操作捆绑在主循环体中的要求下,所述应用任务模块的设计可以根据实际需要做相应的变化,而不影响本发明的实质和范围。
任务唤醒函数设计:任务唤醒函数在设计各应用任务模块时同时提供,该函数执行的操作是为处于等待状态的被监控应用任务模块分配一个虚拟任务,使本应用任务模块由等待状态变为就绪状态。例如某应用任务模块等待一条消息进行处理,唤醒函数可以发送一条特殊消息给该任务;某应用任务模块等待一个信号量,唤醒函数可以释放一次该信号量;某应用任务模块是一个周期执行的查询任务,唤醒函数则不需要做任何处理。
所述任务唤醒操作以及任务唤醒函数的设计,主要是针对多任务系统中可能出现的,由于某应用任务模块处于等待状态的时间过长而无法清空相应的任务状态报告计数器,不能及时向监控任务模块包括运行状态,而实际上却是处于正常状态的情况,可以让监控任务模块通过任务唤醒操作进行判断,而避免误认为是应用任务模块出现异常。
熟悉本领域的技术人员可以理解,所述监控任务模块监控应用任务模块运行情况的方法也可以是监控任务模块定期向应用任务模块发送核查消息,应用任务模块收到核查消息后给出响应,同样能达到监控应用任务模块的目的,而不影响本发明的实质和范围。
最后给出本发明的一个较佳实施例中,用类似于C语言的伪代码编写的各个任务、函数、及其数据结构。熟知本领域的技术人员可以理解,以下伪代码中各个部分的功能可以根据以上所述方案而做适当变化或增减并具体实现,而不影响本发明的实质和范围。
/********************************************************

*每个被监控的应用任务模块对应的数据结构,用于记录任务运行报告

*计数器和任务唤醒函数。

*/
        <!-- SIPO <DP n="11"> -->
        <dp n="d11"/>
struct{

unsigned int timer;/*任务运行报告计数器*/

FUCPTR pwakeuptask;/*记录任务唤醒函数指针*/

}

/********************************************************

*任务注册函数:记录任务唤醒函数,分配任务运行状态报告计数器

*/

unsigned int*TaskRegister(FUCPTR pWakeup)

{

  if(分配记录项成功)

   {

     记录任务唤醒函数为pWakeUp函数;

     任务运行状态报告计数器设为初始值;

     返回任务运行状态报告计数器地址;

   }

   else

   {

      返回空指针;

   }

}

/********************************************************

*监控任务模块设置:监控所有已注册应用任务模块的运行情况

*/
        <!-- SIPO <DP n="12"> -->
        <dp n="d12"/>
void monitor(void)

{

  while(1)/*任务循环体*/

  {

     执行一次清狗操作;

     释放CPU一定长度的执行时间;
     for(任务号=0~MAX)

      {

                   对应任务运行状态报告计数器增加一次计数;

        if(对应任务运行状态报告计数器未超过门限1)

         {

         }

         elseif(对应任务运行状态报告计数器尚未超过门限2)

           {

            调用该任务唤醒函数

           }

           elseif(对应任务运行状态报告计数器尚未超过门限3)

            {

              if(任务恢复失败)

               {

                 进行现场记录;

                 软件恢复;
        <!-- SIPO <DP n="13"> -->
        <dp n="d13"/>
         }

     }

     else

     {

         进行现场记录;

         软件恢复;

     }

   }

}/*任务循环体*/

}

/********************************************************

*应用任务模块设计:向监控任务模块主动报告任务运行情况

*/

void TaskX(unsigned int*对应任务运行状态报告计数器地址)

{

  任务相关初始化;

  while(1)    /*任务循环体*/

  {

     清空任务运行状态报告计数器;

     等待系统分配任务;

     系统任务处理;
  〕
        <!-- SIPO <DP n="14"> -->
        <dp n="d14"/>
}

/********************************************************

*任务唤醒函数设计:为本任务分配虚拟任务,唤醒任务执行;

*/

static void wakeup(void)

{

  为本任务分配虚拟任务,唤醒任务执行;

}
虽然通过参照本发明的某些优选实施例,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种各样的改变,而不偏离所附权利要求书所限定的本发明的精神和范围。

Claims (11)

1.一种多任务系统的异常监控装置,包含一个用于在计数溢出时触发所述多任务系统复位的看门狗计数器,其特征在于,所述多任务系统的异常监控装置还包含一个监控任务模块以及至少一个应用任务模块;其中,
所述监控任务模块用于周期性清空所述看门狗计数器,对所述应用任务模块进行异常处理,以及触发系统复位;
所述应用任务模块用于实现所述多任务系统的功能并向所述监控任务模块报告运行状态。
2.根据权利要求1所述的多任务系统的异常监控装置,其特征在于,还包含:
至少一个与所述应用任务模块相应的任务状态报告计数器;并且,
所述应用任务模块可以通过清空相应的所述任务状态报告计数器向所述监控任务模块报告运行状态;
所述监控任务模块可以对所述任务状态报告计数器进行计数操作,并根据计数值对所述应用任务模块进行相应的处理。
3.根据权利要求1所述的多任务系统的异常监控装置,其特征在于,所述监控任务模块中任务运行的优先级高于所述应用任务模块中任务运行的优先级。
4.一种多任务系统的异常监控方法,其特征在于,包含以下步骤:
监控任务模块在自身主循环体中清空看门狗计数器;
所述监控任务模块在自身主循环体中监控所有应用任务模块的异常情况;
所述应用任务模块在创建的时候向所述监控任务模块进行任务注册;
所述应用任务模块在自身主循环体中向所述监控任务模块报告运行状态。
5.根据权利要求4所述的多任务系统的异常监控方法,其特征在于,在所述监控任务模块监控所述应用任务模块的步骤中,进一步包含以下步骤:
所述监控任务定期检查应用任务对应的计数器,确定应用任务的状态,并进行相应的处理。
6.根据权利要求4所述的多任务系统的异常监控方法,其特征在于,在所述应用任务模块向所述监控任务模块报告运行状态的步骤中,进一步包含以下步骤:
所述应用任务模块在自身主循环体中清空任务状态报告计数器。
7.根据权利要求4所述的多任务系统的异常监控方法,其特征在于,在所述监控任务模块监控所有应用任务模块的异常情况的步骤中,进一步包含以下步骤:
A所述监控任务模块对所有应用任务模块相应的任务状态报告计数器进行计数操作;
B所述监控任务模块判断所述应用任务模块相应的任务状态报告计数器的计数值是否超过第一门限,如果是,则进入步骤C,否则进入步骤D;
C所述监控任务模块对所述应用任务模块进行异常处理;
D所述监控任务模块完成对所述应用任务模块的监控。
8.根据权利要求7所述的多任务系统的异常监控方法,其特征在于,所述步骤C进一步包含以下子步骤:
C1所述监控任务模块判断所述应用任务模块相应的所述任务状态报告计数器的计数值是否超过第二门限,如果是,则进入步骤C2,否则进入步骤C3;
C2所述监控任务模块对所述应用任务模块进行进一步的异常处理;
C3所述监控任务模块调用所述应用任务模块的任务唤醒函数,并完成对所述应用任务模块的监控。
9.根据权利要求8所述的多任务系统的异常监控方法,其特征在于,步骤C2进一步包含以下子步骤:
C21所述监控任务模块判断所述应用任务模块相应的所述任务状态报告计数器的计数值是否超过第三门限,如果是,则进入步骤C22,否则进入步骤C23;
C22所述监控任务模块保存现场并执行系统复位;
C23所述监控任务模块对所述应用任务模块进行任务恢复,如果任务恢复成功,则完成对本应用任务模块的监控,否则进入步骤C22。
10.根据权利要求4至9中任意一条所述的多任务系统的异常监控方法,其特征在于,在所述应用任务模块向所述监控任务模块进行的任务注册的步骤中,进一步包含以下子步骤:
所述监控任务模块为请求注册的应用任务模块分配一个任务运行状态报告计数器;
所述监控任务模块记录由请求注册的应用任务模块提供的任务唤醒函数地址。
11.根据权利要求8所述的多任务系统的异常监控方法,其特征在于,所述任务唤醒函数执行的操作是为处于等待状态的被监控应用任务模块分配一个虚拟任务,使该应用任务模块由等待状态变为就绪状态。
CNB031578748A 2003-09-13 2003-09-13 多任务系统的异常监控装置及其方法 Expired - Fee Related CN100359481C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB031578748A CN100359481C (zh) 2003-09-13 2003-09-13 多任务系统的异常监控装置及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB031578748A CN100359481C (zh) 2003-09-13 2003-09-13 多任务系统的异常监控装置及其方法

Publications (2)

Publication Number Publication Date
CN1595368A true CN1595368A (zh) 2005-03-16
CN100359481C CN100359481C (zh) 2008-01-02

Family

ID=34660386

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031578748A Expired - Fee Related CN100359481C (zh) 2003-09-13 2003-09-13 多任务系统的异常监控装置及其方法

Country Status (1)

Country Link
CN (1) CN100359481C (zh)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100367234C (zh) * 2005-04-28 2008-02-06 华为技术有限公司 一种实时操作系统中任务挂起状态监控方法
CN101201689B (zh) * 2006-12-13 2010-04-14 上海晨兴电子科技有限公司 一种多任务系统中自动管理cpu功耗的方法
CN101231601B (zh) * 2007-01-24 2010-06-30 盛群半导体股份有限公司 微控制器的共用计数电路及其共用计数方法
CN101901168A (zh) * 2010-06-29 2010-12-01 深圳市景阳科技股份有限公司 一种看门狗复位系统及其复位方法
CN101937371A (zh) * 2010-08-27 2011-01-05 北京星网锐捷网络技术有限公司 一种嵌入式系统中监控任务执行状态的方法及装置
CN101944056A (zh) * 2010-09-21 2011-01-12 深圳市华力特电气股份有限公司 一种多任务系统监控方法及装置
CN102073572A (zh) * 2009-11-24 2011-05-25 中兴通讯股份有限公司 用于多核处理器的监控方法及系统
CN101674465B (zh) * 2009-10-28 2011-06-29 广东威创视讯科技股份有限公司 一种视频多任务监控处理方法及系统
CN101689132B (zh) * 2007-05-11 2012-03-28 莱斯特大学 监控设备
CN101458640B (zh) * 2007-12-14 2012-05-23 环达电脑(上海)有限公司 可监控多线程状态的系统及其监控方法
CN103019908A (zh) * 2012-12-07 2013-04-03 陕西千山航空电子有限责任公司 一种基于多总线下vxworks多任务监控技术的方法
KR20140054859A (ko) * 2012-10-30 2014-05-09 삼성전자주식회사 서버 페이지 운용 방법 및 이를 지원하는 단말기
CN103853625A (zh) * 2012-12-06 2014-06-11 苏州工业园区新宏博通讯科技有限公司 多任务看门狗的实现装置和方法
US8762785B2 (en) 2009-06-12 2014-06-24 Zte Corporation Method and device for handling exceptions in embedded system
CN104011688A (zh) * 2011-12-16 2014-08-27 株式会社自动网络技术研究所 控制装置以及处理监控方法
CN105550057A (zh) * 2015-12-30 2016-05-04 华自科技股份有限公司 嵌入式软件系统故障检测恢复方法和系统
CN105760305A (zh) * 2016-03-09 2016-07-13 上海博达数据通信有限公司 一种linux下的系统实时性监控方法
WO2016161800A1 (zh) * 2015-04-08 2016-10-13 华为技术有限公司 系统运行的方法及智能终端
CN108491311A (zh) * 2018-04-02 2018-09-04 深圳还是威健康科技有限公司 一种实时操作系统的看门狗监测方法及终端
CN109491824A (zh) * 2018-11-13 2019-03-19 福建北峰通信科技股份有限公司 一种嵌入式操作系统的看门狗控制方法
CN110442470A (zh) * 2019-07-26 2019-11-12 高新兴科技集团股份有限公司 一种通信设备的系统稳定性监测及恢复方法
CN111651325A (zh) * 2020-06-02 2020-09-11 中电科航空电子有限公司 一种机载设备任务监控系统及方法
CN111788139A (zh) * 2018-02-26 2020-10-16 三菱电机株式会社 电梯安全控制装置
CN111930589A (zh) * 2020-07-02 2020-11-13 上海微亿智造科技有限公司 流式任务自动化监控系统及方法
CN113672363A (zh) * 2021-07-21 2021-11-19 惠州华阳通用电子有限公司 一种多任务异常的恢复方法及存储介质
CN116700786A (zh) * 2023-08-02 2023-09-05 成都利普芯微电子有限公司 一种微控制器及防止微控制器Flash误擦写的方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102681907B (zh) * 2012-02-06 2014-08-13 北京广利核系统工程有限公司 一种多功能看门狗电路

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05346878A (ja) * 1992-06-16 1993-12-27 Koyo Seiko Co Ltd マルチタスクシステム
CN1400529A (zh) * 2001-07-30 2003-03-05 华为技术有限公司 一种实时嵌入系统的故障定位方法

Cited By (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100367234C (zh) * 2005-04-28 2008-02-06 华为技术有限公司 一种实时操作系统中任务挂起状态监控方法
CN101201689B (zh) * 2006-12-13 2010-04-14 上海晨兴电子科技有限公司 一种多任务系统中自动管理cpu功耗的方法
CN101231601B (zh) * 2007-01-24 2010-06-30 盛群半导体股份有限公司 微控制器的共用计数电路及其共用计数方法
CN101689132B (zh) * 2007-05-11 2012-03-28 莱斯特大学 监控设备
CN101458640B (zh) * 2007-12-14 2012-05-23 环达电脑(上海)有限公司 可监控多线程状态的系统及其监控方法
US8762785B2 (en) 2009-06-12 2014-06-24 Zte Corporation Method and device for handling exceptions in embedded system
CN101674465B (zh) * 2009-10-28 2011-06-29 广东威创视讯科技股份有限公司 一种视频多任务监控处理方法及系统
CN102073572B (zh) * 2009-11-24 2015-10-21 中兴通讯股份有限公司 用于多核处理器的监控方法及系统
CN102073572A (zh) * 2009-11-24 2011-05-25 中兴通讯股份有限公司 用于多核处理器的监控方法及系统
CN101901168A (zh) * 2010-06-29 2010-12-01 深圳市景阳科技股份有限公司 一种看门狗复位系统及其复位方法
CN101937371A (zh) * 2010-08-27 2011-01-05 北京星网锐捷网络技术有限公司 一种嵌入式系统中监控任务执行状态的方法及装置
CN101944056A (zh) * 2010-09-21 2011-01-12 深圳市华力特电气股份有限公司 一种多任务系统监控方法及装置
CN101944056B (zh) * 2010-09-21 2013-05-08 深圳市华力特电气股份有限公司 一种多任务系统监控方法及装置
CN104011688A (zh) * 2011-12-16 2014-08-27 株式会社自动网络技术研究所 控制装置以及处理监控方法
CN104011688B (zh) * 2011-12-16 2016-05-18 株式会社自动网络技术研究所 控制装置以及处理监控方法
KR20140054859A (ko) * 2012-10-30 2014-05-09 삼성전자주식회사 서버 페이지 운용 방법 및 이를 지원하는 단말기
KR102043256B1 (ko) 2012-10-30 2019-11-12 삼성전자 주식회사 서버 페이지 운용 방법 및 이를 지원하는 단말기
CN103853625A (zh) * 2012-12-06 2014-06-11 苏州工业园区新宏博通讯科技有限公司 多任务看门狗的实现装置和方法
CN103019908A (zh) * 2012-12-07 2013-04-03 陕西千山航空电子有限责任公司 一种基于多总线下vxworks多任务监控技术的方法
WO2016161800A1 (zh) * 2015-04-08 2016-10-13 华为技术有限公司 系统运行的方法及智能终端
US10552263B2 (en) 2015-04-08 2020-02-04 Huawei Technologies Co., Ltd. System running method and intelligent terminal
CN105550057A (zh) * 2015-12-30 2016-05-04 华自科技股份有限公司 嵌入式软件系统故障检测恢复方法和系统
CN105760305A (zh) * 2016-03-09 2016-07-13 上海博达数据通信有限公司 一种linux下的系统实时性监控方法
CN111788139B (zh) * 2018-02-26 2021-09-14 三菱电机株式会社 电梯安全控制装置
CN111788139A (zh) * 2018-02-26 2020-10-16 三菱电机株式会社 电梯安全控制装置
CN108491311A (zh) * 2018-04-02 2018-09-04 深圳还是威健康科技有限公司 一种实时操作系统的看门狗监测方法及终端
CN109491824A (zh) * 2018-11-13 2019-03-19 福建北峰通信科技股份有限公司 一种嵌入式操作系统的看门狗控制方法
CN110442470A (zh) * 2019-07-26 2019-11-12 高新兴科技集团股份有限公司 一种通信设备的系统稳定性监测及恢复方法
CN110442470B (zh) * 2019-07-26 2023-08-29 高新兴科技集团股份有限公司 一种通信设备的系统稳定性监测及恢复方法
CN111651325A (zh) * 2020-06-02 2020-09-11 中电科航空电子有限公司 一种机载设备任务监控系统及方法
CN111930589A (zh) * 2020-07-02 2020-11-13 上海微亿智造科技有限公司 流式任务自动化监控系统及方法
CN113672363A (zh) * 2021-07-21 2021-11-19 惠州华阳通用电子有限公司 一种多任务异常的恢复方法及存储介质
CN113672363B (zh) * 2021-07-21 2024-02-02 惠州华阳通用电子有限公司 一种多任务异常的恢复方法及存储介质
CN116700786A (zh) * 2023-08-02 2023-09-05 成都利普芯微电子有限公司 一种微控制器及防止微控制器Flash误擦写的方法
CN116700786B (zh) * 2023-08-02 2023-11-10 成都利普芯微电子有限公司 一种微控制器及防止微控制器Flash误擦写的方法

Also Published As

Publication number Publication date
CN100359481C (zh) 2008-01-02

Similar Documents

Publication Publication Date Title
CN1595368A (zh) 多任务系统的异常监控装置及其方法
CN100337206C (zh) 使用监视-存储器等待来监视锁定的方法、装置和系统
CN102541653B (zh) 一种多任务线程池调度方法和系统
CN101236515B (zh) 多核系统单核异常的恢复方法
CN1702625A (zh) 保存跟踪数据的方法和装置
CN1859183A (zh) 一种实现设备状态轮询的方法及装置
CN1760839A (zh) 帮助多端口主机适配器的端口测试的装置、系统和方法
CN102576331A (zh) 用于在虚拟机监视器环境中的虚拟机之间同步瞬时资源使用的系统和方法
CN101387971A (zh) 一种嵌入式软件的任务调整方法和装置
CN1808386A (zh) 处理多线程/多任务/多处理器的方法
CN102866920A (zh) 主从结构分布式视频处理系统及其调度方法
CN1754153A (zh) 对在os运行时期间发生的系统错误的基于策略的响应
CN1908906A (zh) 一种软件运行状态的监控方法
CN111427751A (zh) 基于异步处理机制对业务进行处理的方法及系统
CN103530197B (zh) 一种检测及解决Linux系统死锁的方法
CN101192192A (zh) 用于实时操作系统的任务异常诊断方法及系统
CN103178977A (zh) 计算机系统及计算机系统的开机管理方法
CN101458640B (zh) 可监控多线程状态的系统及其监控方法
CN1639691A (zh) 尤其是容许故障系统的处理器的用于事件同步的方法
CN1851652A (zh) 嵌入式sram操作系统进程优先级轮转调度的实现方法
CN1825288A (zh) 嵌入式sram操作系统进程多队列调度的实现方法
CN1851651A (zh) 嵌入式sram操作系统进程优先权调度的实现方法
CN110287159B (zh) 一种文件处理方法及装置
US9563494B2 (en) Systems and methods for managing task watchdog status register entries
CN110941503A (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080102

Termination date: 20180913