CN101192192B - 用于实时操作系统的任务异常诊断方法及系统 - Google Patents
用于实时操作系统的任务异常诊断方法及系统 Download PDFInfo
- Publication number
- CN101192192B CN101192192B CN2006101457880A CN200610145788A CN101192192B CN 101192192 B CN101192192 B CN 101192192B CN 2006101457880 A CN2006101457880 A CN 2006101457880A CN 200610145788 A CN200610145788 A CN 200610145788A CN 101192192 B CN101192192 B CN 101192192B
- Authority
- CN
- China
- Prior art keywords
- task
- abnormity
- task abnormity
- function
- unusual
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种用于实时操作系统的任务异常诊断方法及系统。其中,该方法包括以下步骤:当出现任务异常时,任务异常诊断模块根据发生异常的任务的ID查询任务异常处理信息表,以通过任务异常记录函数与任务的ID之间的对应关系定位任务异常记录函数;以及通过任务异常记录函数记录异常任务的相关信息,以用于诊断异常任务;其中,任务异常处理信息表由任务异常诊断模块创建,包含任务异常记录函数及其与任务ID之间的对应关系;以及采用注册机制向任务异常诊断模块注册任务异常记录函数和对应关系。通过本发明,能够得到用于任务异常诊断的更多的相关信息,从而提高任务异常分析的效率。
Description
技术领域
本发明涉及通信领域,更具体地涉及一种用于实时操作系统的任务异常诊断方法及系统。
背景技术
任务是可以由实时操作系统调度并由处理器执行的能够竞争系统资源的最小单位,它能够独立运行来完成某一相对独立的功能。任务在系统中具有有唯一的标识(即TID)、自己独立的任务控制块(Transaction Control Block,简称TCB)、以及任务栈。系统调度器使用TCB的数据结构来管理任务调度功能。其中,TCB包括任务的当前状态、优先级、要等待的事件或资源、任务程序码的起始地址、初始堆栈指针等信息。任务具有优先级是内核进行任务调度的基础。
实时操作系统是指能在确定的时间内执行其功能,并对外部的异步事件作出响应的计算机系统。一般的实时系统由一个实时多任务环境构成。实时多任务环境允许一个实时应用作为一系列独立任务来运行,各任务有各自的线程和系统资源。实时操作系统的内核实现了对多任务的管理,包括任务的调度、任务的异常处理等。
在系统的运行过程中,程序代码或数据的出错(如非法命令、总线或地址错误、被零除、写越界等)会导致系统出现问题。实时操作系统异常处理模块此时将会引起异常的任务休眠,并保存任务在异常出错处的状态值。通常会将这些信息记录下来,以用于任务异常诊断。但因受到实际运行环境复杂、出错原因众多等因素的影响,仅仅依赖于这些记录的信息并不能够快速定位任务的异常问题,找到任务异常的根因。
当实时操作系统的异常监控模块检测到某个任务有异常发生时,实时操作系统异常处理模块记录该任务相关的TCB等信息。这些信息包括异常类型、任务ID、任务名、调用栈、异常指令、寄存器值等信息,这些信息可用于后续的任务异常分析。
但是这些信息由实时操作系统直接提供,可扩展性差。并且这些记录信息缺少灵活性,与任务的功能、作用不存在关联,因此利用记录的信息,只能找到问题出现在哪个地方,而不能找出其他的与任务相关的重要资源信息。
由上可见,在进行异常任务诊断时,需要引入一种新的解决方案,以解决上述的问题。
发明内容
本发明旨在提供一种用于实时操作系统的任务异常诊断方法及系统,以能够得到用于任务异常诊断的更多的相关信息,从而提高任务异常分析的效率。
根据本发明的一个方面,提供了一种用于实时操作系统的任务异常诊断方法,包括以下步骤:当出现任务异常时,任务异常诊断模块根据发生异常的任务的ID查询任务异常处理信息表,以通过任务异常记录函数与任务的ID之间的对应关系定位任务异常记录函数;以及通过任务异常记录函数记录异常任务的相关信息,以用于诊断异常任务。
在上述任务异常诊断方法中,在出现任务异常之前,进行以下步骤:在实时操作系统中创建独立的任务异常诊断模块,其包含任务异常处理信息表,任务异常处理信息表包含任务异常记录函数及其与任务的ID之间的对应关系。
在上述的任务异常诊断方法中,采用注册机制向任务异常诊断模块注册任务异常记录函数和对应关系。
在上述的任务异常诊断方法中,还包括以下步骤:当任务主动退出时,通过调用反注册函数取消任务异常记录函数、及对应关系在任务异常诊断模块上的注册。
在上述的任务异常诊断方法中,实时操作系统中的系统异常监控模块发送异常消息给任务异常诊断模块,异常消息包含发生异常的任务的ID。
在上述的任务异常诊断方法中,相关信息根据任务的功能来设置。
在上述的任务异常诊断方法中,异常任务的相关信息包括下列信息中的至少一种:系统正处理的数据信息、收发包信息、任务相关的重要数据结构、任务异常时间、异常任务名、异常任务ID、设备软硬件版本信息、及系统剩余内存。
在上述的任务异常诊断方法中,当任务异常诊断模块没有在任务异常处理信息表中查询到与ID相对应的任务异常记录函数时,不对发生异常的任务的相关信息进行记录、或通过任务异常处理信息表中的所有的任务异常记录函数对任务的相关信息进行记录。
根据本发明的另一方面,提供了一种用于实时操作系统的任务异常诊断系统,其包括:用于当出现任务异常时,指令任务异常诊断模块根据发生异常的任务的ID查询任务异常处理信息表,以通过任务异常记录函数与任务的ID之间的对应关系定位任务异常记录函数的装置;以及用于通过任务异常记录函数记录异常任务的相关信息,以用于诊断异常任务的装置;其中,任务异常处理信息表由任务异常诊断模块创建,包含任务异常记录函数及其与任务ID之间的对应关系。
在上述的任务异常诊断系统中,采用注册机制向任务异常诊断模块注册任务异常记录函数和对应关系。
在上述的任务异常诊断系统中,还包括注册取消装置,用于当任务主动退出时,通过调用反注册函数取消任务异常记录函数、及对应关系在任务异常诊断模块上的注册。
在上述的任务异常诊断系统中,当出现任务异常时,通过消息方式通知任务异常诊断模块发生异常的任务的ID。
在上述的任务异常诊断系统中,实时操作系统中的系统异常监控模块发送异常消息给任务异常诊断模块,异常消息包含发生异常的任务的ID。
在上述的任务异常诊断系统中,相关信息根据任务的功能来设置。
在上述的任务异常诊断系统中,异常任务的相关信息包括下列信息中的至少一种:系统正处理的数据信息、收发包信息、任务相关的重要数据结构、任务异常时间、异常任务名、异常任务ID、设备软硬件版本信息、及系统剩余内存。
在上述的任务异常诊断系统中,当任务异常诊断模块没有在任务异常处理信息表中查询到与ID相对应的任务异常记录函数时,异常任务相关信息记录装置不对发生异常的任务的相关信息进行记录、或通过任务异常处理信息表中的所有的任务异常记录函数对任务的相关信息进行记录。
通过上述技术方案,本发明实现了如下技术效果:
本发明有效地丰富了任务异常诊断的手段,提升了任务异常分析的效率;并且设计者可以根据各个任务功能的不同,灵活设计各个任务异常需记录的内容,从而实现了与业务功能相关联的记录。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了根据本发明的用于实时操作系统的任务异常诊断方法的流程图;
图2示出了根据本发明的在实时操作系统内进行任务异常诊断时,各模块间的动作示意图;
图3示出了根据本发明的在实时操作系统内进行任务异常诊断时,实现异常信息记录的具体流程图;以及
图4示出了根据本发明的用于实时操作系统的任务异常诊断系统的框图。
具体实施方式
下面将参考附图并结合实施例,来详细说明本发明。
图1是根据本发明的在实时操作系统内进行任务异常诊断时,各模块间的动作示意图;图2是根据本发明的在实时操作系统内进行任务异常诊断时,实现异常信息记录的具体流程图。
参考图1、图2、及图3所示,说明根据本发明的用于实时操作系统的任务异常诊断方法。。
如图1所示,根据本发明的用于实时操作系统得任务异常诊断方法包括以下步骤:
S104,当出现任务异常时,任务异常诊断模块根据发生异常的任务的ID查询任务异常处理信息表,以通过任务异常记录函数与任务的ID之间的对应关系定位任务异常记录函数。例如,在实时操作系统的异常处理模块检测到系统有异常发生时,通过消息方式(消息中含异常任务的ID)通知图2中的任务异常诊断模块。任务异常诊断模块收到此消息后,使用任务ID在任务异常处理信息表中查询对应的异常记录函数。
如查询到,则进行S106,通过任务异常记录函数记录异常任务的相关信息,以用于诊断异常任务;如查询不到,则根据系统的策略不进行记录、或者调用所有的任务异常诊断模块的异常记录函数,实现全面的信息记录。如图2所示,将任务异常信息记录在存储模块中。在进行记录的时候可以附加记录系统重要信息:如任务异常时间、异常任务名、异常任务ID、设备软硬件版本信息、系统剩余内存等。其进行记录的处理流程如图3所示。其中,我们可以根据各个任务的不同功能,灵活设计任务异常记录的内容。例如,对于处理报文转发的任务,我们可以记录该任务正在处理的报文信息;对于进行队列调度的任务,我们可以记录该任务正在处理的队列信息。
其中,在出现任务异常之前,进行以下步骤:S102,在实时操作系统中创建独立的任务异常诊断模块,其包含任务异常处理信息表,任务异常处理信息表包含任务异常记录函数及其与任务的ID之间的对应关系。此处的任务异常诊断模块的实例如图2中所示的具有注册、调度、异常记录功能的任务异常诊断模块。
其中,采用注册机制向任务异常诊断模块注册任务异常记录函数和对应关系。例如,注册索引为任务ID(即TID)。在每个任务生成的时候,实时操作系统会为任务分配唯一的任务标识(即TID)。我们可以将此作为唯一索引向异常诊断模块注册一个异常记录函数,该异常记录函数在该任务异常时由异常诊断模块进行触发调用,实现该任务相关重要资源信息(包括但不限于系统正处理的数据信息、收发包信息、任务相关的重要数据结构等)的记录功能。待相关任务均完成注册后,在任务异常诊断模块会生成一张任务异常处理信息表,该表中存储了相关任务的异常记录函数以及与任务ID的对应关系如下表所示:
其中,该任务异常诊断方法还包括以下步骤:S108,当任务主动退出时,通过调用反注册函数取消任务异常记录函数、及对应关系在任务异常诊断模块上的注册。
其中,实时操作系统中的系统异常监控模块发送异常消息给任务异常诊断模块,异常消息包含发生异常的任务的ID。
其中,相关信息根据任务的功能来设置。
其中,异常任务的相关信息包括下列信息中的至少一种:系统正处理的数据信息、收发包信息、任务相关的重要数据结构、任务异常时间、异常任务名、异常任务ID、设备软硬件版本信息、及系统剩余内存。
其中,当任务异常诊断模块没有在任务异常处理信息表中查询到与ID相对应的任务异常记录函数时,不对发生异常的任务的相关信息进行记录、或通过任务异常处理信息表中的所有的任务异常记录函数对任务的相关信息进行记录。
其中,在系统检测到异常发生时,因系统的调度策略不同,采取的措施也不同。有些会重新启动系统;有些会重新启动任务;有些可能不做任何处理。为了保证记录的任务异常信息在设备重启动后信息不会丢失,任务异常诊断模块提供了固化记录功能,不但可将记录信息存储在系统提供的RAM(如内存)中,还可将记录信息存储到系统的ROM设备中(如NVRAM,FLASH等)。
另外,本发明使用友好的交互方式提供任务异常信息查询功能、任务异常信息清空功能。
图4是根据本发明的用于实时操作系统的任务异常诊断系统的框图。如图4所示,根据本发明的用于实时操作系统的任务异常诊断系统包括:任务异常诊断模块创建装置402,用于在实时操作系统中创建独立的任务异常诊断模块,任务异常诊断模块包含任务异常处理信息表,任务异常处理信息表包含任务异常记录函数及其与任务的ID之间的对应关系;以及异常任务相关信息记录装置404,用于当出现任务异常时,指令任务异常诊断模块根据发生异常的任务的ID查询任务异常处理信息表,以通过对应关系定位任务异常记录函数,并通过任务异常记录函数记录异常任务的相关信息,以用于诊断异常任务。
其中,采用注册机制向任务异常诊断模块注册任务异常记录函数和对应关系。
其中,该任务异常诊断系统还包括注册取消装置406,用于当任务主动退出时,通过调用反注册函数取消任务异常记录函数、及对应关系在任务异常诊断模块上的注册。
其中,当出现任务异常时,通过消息方式通知任务异常诊断模块发生异常的任务的ID。实时操作系统中的系统异常监控模块发送异常消息给任务异常诊断模块,异常消息包含发生异常的任务的ID。
其中,相关信息根据任务的功能来设置。其中,异常任务的相关信息包括下列信息中的至少一种:系统正处理的数据信息、收发包信息、任务相关的重要数据结构、任务异常时间、异常任务名、异常任务ID、设备软硬件版本信息、及系统剩余内存。
其中,当任务异常诊断模块没有在任务异常处理信息表中查询到与ID相对应的任务异常记录函数时,异常任务相关信息记录装置不对发生异常的任务的相关信息进行记录、或通过任务异常处理信息表中的所有的任务异常记录函数对任务的相关信息进行记录。
从以上的描述中,可以看出,本发明实现了如下技术效果:
本发明有效地丰富了任务异常诊断的手段,提升了任务异常分析的效率;并且设计者可以根据各个任务功能的不同,灵活设计各个任务异常需记录的内容,从而实现了与业务功能相关联的记录。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。应该明白,这些具体实施中的变化对于本领域的技术人员来说是显而易见的,不脱离本发明的精神保护范围。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种用于实时操作系统的任务异常诊断方法,其特征在于,包括以下步骤:
当出现任务异常时,任务异常诊断模块根据发生异常的任务的ID查询任务异常处理信息表,以通过任务异常记录函数与任务的ID之间的对应关系定位所述任务异常记录函数;以及
通过所述任务异常记录函数记录所述异常任务的相关信息,以用于诊断所述异常任务;
其中,所述任务异常处理信息表由所述任务异常诊断模块创建,包含任务异常记录函数及其与任务ID之间的对应关系;以及采用注册机制向所述任务异常诊断模块注册所述任务异常记录函数和所述对应关系。
2.根据权利要求1所述的任务异常诊断方法,其特征在于,还包括以下步骤:当任务主动退出时,通过调用反注册函数取消所述任务异常记录函数、及所述对应关系在所述任务异常诊断模块上的注册。
3.根据权利要求1所述的任务异常诊断方法,其特征在于,还包括以下步骤:实时操作系统中的系统异常监控模块发送异常消息给所述任务异常诊断模块,所述异常消息包含发生异常的任务的ID。
4.根据权利要求1所述的任务异常诊断方法,其特征在于,所述相关信息根据任务的功能来设置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101457880A CN101192192B (zh) | 2006-11-21 | 2006-11-21 | 用于实时操作系统的任务异常诊断方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101457880A CN101192192B (zh) | 2006-11-21 | 2006-11-21 | 用于实时操作系统的任务异常诊断方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101192192A CN101192192A (zh) | 2008-06-04 |
CN101192192B true CN101192192B (zh) | 2010-08-18 |
Family
ID=39487193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101457880A Expired - Fee Related CN101192192B (zh) | 2006-11-21 | 2006-11-21 | 用于实时操作系统的任务异常诊断方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101192192B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923508B (zh) * | 2009-06-12 | 2012-12-19 | 中兴通讯股份有限公司 | 一种嵌入式系统中的异常处理方法及装置 |
CN102385508A (zh) * | 2010-09-03 | 2012-03-21 | 金蝶软件(中国)有限公司 | 一种异常处理的方法、装置和软件系统 |
CN101950260B (zh) * | 2010-09-10 | 2014-04-30 | 中兴通讯股份有限公司 | 一种处理器程序调度方法及装置 |
CN102004694B (zh) * | 2010-11-26 | 2013-04-24 | 北京握奇数据系统有限公司 | 一种基于Java的异常处理方法和异常处理装置 |
CN105260257B (zh) * | 2015-11-12 | 2019-03-26 | 用友网络科技股份有限公司 | 解决程序运行期间停止响应的方法和装置 |
CN106708671A (zh) * | 2015-11-17 | 2017-05-24 | 深圳市中兴微电子技术有限公司 | 一种片上系统总线行为检测方法和装置 |
CN107368359A (zh) * | 2017-05-31 | 2017-11-21 | 杭州大搜车汽车服务有限公司 | 一种异步任务执行方法及其存储介质、装置 |
CN107861825A (zh) * | 2017-10-16 | 2018-03-30 | 北京京东尚科信息技术有限公司 | 请求处理/状态码查询方法及装置、下/上游节点、介质 |
CN108040159B (zh) * | 2017-11-30 | 2021-01-29 | 江苏觅丰电商科技有限公司 | 基于硬件驱动的重启定位方法、移动终端及可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5895472A (en) * | 1996-11-12 | 1999-04-20 | International Business Machines Corporation | Change and accounting log for object-oriented systems |
CN1477505A (zh) * | 2002-08-24 | 2004-02-25 | 深圳市中兴通讯股份有限公司 | 嵌入式操作系统中异常故障定位方法 |
CN1550989A (zh) * | 2003-05-07 | 2004-12-01 | 有计划的计算机问题诊断和解决及其自动报告和更新 | |
CN1744046A (zh) * | 2004-08-31 | 2006-03-08 | 华为技术有限公司 | 实时操作系统环境下多任务应用软件模块的管理方法 |
CN1763720A (zh) * | 2004-09-30 | 2006-04-26 | 西门子公司 | 基于诊断和修复事件日志的模型 |
CN1783068A (zh) * | 2005-09-09 | 2006-06-07 | 浙江大学 | 一种故障诊断数据采集与发布方法 |
US7120901B2 (en) * | 2001-10-26 | 2006-10-10 | International Business Machines Corporation | Method and system for tracing and displaying execution of nested functions |
-
2006
- 2006-11-21 CN CN2006101457880A patent/CN101192192B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5895472A (en) * | 1996-11-12 | 1999-04-20 | International Business Machines Corporation | Change and accounting log for object-oriented systems |
US7120901B2 (en) * | 2001-10-26 | 2006-10-10 | International Business Machines Corporation | Method and system for tracing and displaying execution of nested functions |
CN1477505A (zh) * | 2002-08-24 | 2004-02-25 | 深圳市中兴通讯股份有限公司 | 嵌入式操作系统中异常故障定位方法 |
CN1550989A (zh) * | 2003-05-07 | 2004-12-01 | 有计划的计算机问题诊断和解决及其自动报告和更新 | |
CN1744046A (zh) * | 2004-08-31 | 2006-03-08 | 华为技术有限公司 | 实时操作系统环境下多任务应用软件模块的管理方法 |
CN1763720A (zh) * | 2004-09-30 | 2006-04-26 | 西门子公司 | 基于诊断和修复事件日志的模型 |
CN1783068A (zh) * | 2005-09-09 | 2006-06-07 | 浙江大学 | 一种故障诊断数据采集与发布方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101192192A (zh) | 2008-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101192192B (zh) | 用于实时操作系统的任务异常诊断方法及系统 | |
US9798595B2 (en) | Transparent user mode scheduling on traditional threading systems | |
JP5474177B2 (ja) | 分散アプリケーションの監視 | |
US8949671B2 (en) | Fault detection, diagnosis, and prevention for complex computing systems | |
US6701464B2 (en) | Method and system for reporting error logs within a logical partition environment | |
US8607098B2 (en) | Generating appropriately sized core files used in diagnosing application crashes | |
WO2009146612A1 (zh) | 嵌入式c语言环境下异常处理方法及装置 | |
CN1702625A (zh) | 保存跟踪数据的方法和装置 | |
US20130081062A1 (en) | Scalable, Parallel Processing of Messages While Enforcing Custom Sequencing Criteria | |
WO1997048046A1 (en) | Autonotification | |
US7523446B2 (en) | User-space return probes | |
US20170206121A1 (en) | Monitoring components in a service framework | |
JP2013513162A (ja) | 分散された永続性インスタンスに対するロックの解決 | |
US11782753B2 (en) | Node-local-unscheduler for scheduling remediation | |
CN109558235A (zh) | 一种处理器的调度方法、装置及计算机设备 | |
US5668994A (en) | Conversation management routine for co-operative processing applications | |
CN113760491A (zh) | 一种任务调度系统、方法、设备及存储介质 | |
US7363615B2 (en) | Stack-based callbacks for diagnostic data generation | |
CN106844036B (zh) | 物理设备的访问方法及装置 | |
CN114390104A (zh) | 过程取证系统、方法、装置、计算机设备及介质 | |
CN110825496A (zh) | 一种基于vmi的内核数据监控方法及监控系统 | |
JP2560892B2 (ja) | エラー情報処理装置 | |
JP2716537B2 (ja) | 複合システムにおけるダウン監視処理方式 | |
JP4271612B2 (ja) | 障害検出システム及び方法 | |
KR100206472B1 (ko) | 전전자교환기에서 시스템 장애관리 및 복구방법 |
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 |
Granted publication date: 20100818 Termination date: 20151121 |
|
CF01 | Termination of patent right due to non-payment of annual fee |