CN106445712A - 一种基于消息监控的软件看门狗实现方法 - Google Patents

一种基于消息监控的软件看门狗实现方法 Download PDF

Info

Publication number
CN106445712A
CN106445712A CN201610788410.6A CN201610788410A CN106445712A CN 106445712 A CN106445712 A CN 106445712A CN 201610788410 A CN201610788410 A CN 201610788410A CN 106445712 A CN106445712 A CN 106445712A
Authority
CN
China
Prior art keywords
message
monitoring
finger daemon
implementation method
software watchdog
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
CN201610788410.6A
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.)
SHANGHAI OTEC TECHNOLOGY Co Ltd
Original Assignee
SHANGHAI OTEC TECHNOLOGY 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 SHANGHAI OTEC TECHNOLOGY Co Ltd filed Critical SHANGHAI OTEC TECHNOLOGY Co Ltd
Priority to CN201610788410.6A priority Critical patent/CN106445712A/zh
Publication of CN106445712A publication Critical patent/CN106445712A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种基于消息监控的软件看门狗系统的实现方法,主要涵盖两个部分:应用进程的软件看门狗及系统看门狗,两部分的主要核心都在于消息监控,也就是基于消息交互的方法。系统看门狗将会随系统启动以驱动模块的方式加载,创建一个可供监控进程读写的接口,用于接受监控进程的消息。对于应用层的软件看门狗,在于守护进程的实现,在系统中守护进程的作用在于进程监控及消息分发,系统中的所有进程都必须注册一个看门狗消息,同守护进程建立消息连接通道,守护进程将记录各进程的状态信息。本发明提供一种基于消息监控的软件看门狗实现方法,提供一种同时监控系统状态及进程状态的软件看门狗实现方法,使得软件系统更加稳定兼容、更加可靠。

Description

一种基于消息监控的软件看门狗实现方法
技术领域
本发明涉及一种嵌入式系统,尤其涉及一种嵌入式系统中的用软件实现看门狗来监控系统实时状态及系统内工作进程运行状态的监控方法。
背景技术
对于运行嵌入式操作系统的软件系统中,为了保证软件系统的正常运行及系统的安全、稳定性,除了硬件电路中实现看门狗的同时,软件看门狗显得极为重要,目前Linux内核中已经有初步的软件看门狗实现方法,但是针对用户层进程的监控并没有作出详细的说明,
用户层进程监控的实现方法大多数采用定时器的方式主动向监控进程发送特定的心跳消息,告诉主监控进程自身的状态,这种方法存在不足之处在于无法监控整个系统运行状态,同时进程的监控也会存在误判(比如用户进程特别繁忙来不及发送心跳消息给监控进程),这样会导致系统出现挂起状态而又无法通过软重启得到恢复,另一方面进程状态的误判也会导致不可预见的系统故障。
发明内容
针对上述技术问题,本发明提供一种基于消息监控的软件看门狗实现方法,结合系统工作状态及用户层进程状态两块内容,提供一种同时监控系统状态及进程状态的软件看门狗实现方法,使得软件系统更加稳定兼容、更加可靠。
为了实现上述发明目的,本发明采用以下技术方案:
一种基于消息监控的软件看门狗系统的实现方法,包括应用进程的软件看门狗和系统看门狗两部分,所述该两部分的核心为消息监控,即通过消息交互的方法实现。
本发明的更进一步的技术方案是,所述系统看门狗实现过程的主要步骤如下:
所述系统看门狗随系统启动并以驱动模块的方式加载,创建一个可供监控进程读写的接口,用于接收监控进程的消息;
所述驱动模块中设有定时器,等待监控进程发送的消息,如果定时器超时后没有收到监控进程的消息,则看门狗将反向发送消息给监控进程;
如果此时仍然得不到监控进程的响应,则说明系统出现死锁或者主进程挂起的问题,此时看门狗将作出系统软重启的操作;
本发明更进一步的技术方案是,所述应用进程的软件看门狗,用于主监控的守护进程的实现,在系统中守护进程的作用在于进程监控及消息分发,系统中的所有进程都必须注册一个看门狗消息,同守护进程建立消息连接通道,守护进程将记录各进程的状态信息。
本发明更进一步的技术方案是,系统启动后首先将会启动守护进程,所述守护进程将建立三个线程,第一线程用于跟系统看门狗通信;第二线程用于监控应用进程,以及消息分发过程中的监控,并由守护进程进行主导;第二线程为异常处理线程,用于对异常消息的进程进行监控。
本发明更进一步的技术方案是,所述软件看门狗工作流程如下:
应用进程发送消息至守护进程时,守护进程将记录该消息的源和目的并同时将消息分发回去;
如果消息分发成功,则说明源,目的这两个进程都运行正常,将两个进程都加入到正常工作表中;
如果消息分发失败,说明目的进程存在问题,守护进程将该进程加入到异常处理表中,异常处理任务将会定时对该进程的看门狗发送消息;
如果消息发送成功,则说明该进程运行正常,若发送失败,将失败的消息加入到待发送的队列中,等待调度发送。
本发明更进一步的技术方案是,异常处理表中的进程都是消息未发送成功或者未收到消息转发的进程,守护进程将采用定时的机制对这些进程进行监控,同时不断将非异常进程加入到此表中,对所有的进程进行监控,防止遗失其他进程状态。
与现有技术相比,本发明具有以下有益效果:
本发明提供的一种基于消息监控的软件看门狗系统的实现方法,每个软件系统都会有一个核心进程,目前实现的看门狗往往都是只针对各进程的监控,而对核心进程的监控则忽略,对于软件系统应用层来说,通过消息分发过程中记录进程状态可以做到快速对故障进程进行跟踪,提高效率;对于驱动层来说,可以明确系统核心进程的工作状态,通过一来一回的消息交互过程,可以知道系统工作状态,整个软件系统的应用层进程、核心进程都可做到监控;提高了效率,比单纯的定时对所有进程发送消息检测更有针对性。
附图说明
图1为本发明系统看门狗实现方法的流程示意图;
图2为本发明应用进程看门狗实现方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例1
图1示出了本发明一种基于消息监控的软件看门狗系统的实现方法的系统看门狗系统的实现方法,包括以下步骤:
驱动模块中会有一个定时器,等待监控进程发送的消息,如果定时器超时后没有收到监控进程的消息,则看门狗处理将反向发送消息给监控进程;
如果此时仍然得不到监控进程的响应,则说明系统出现死锁或者主进程挂起的问题,此时看门狗将作出系统软重启的操作。
图2为示出了本发明一种基于消息监控的软件看门狗系统的实现方法的系统看门狗系统的实现方法,
对于应用层的软件看门狗,在于主监控进程(以下称为守护进程)的实现,在系统中守护进程的作用在于进程监控及消息分发,系统中的所有进程都必须注册一个看门狗消息,同守护进程建立消息连接通道,守护进程将记录各进程的状态信息;
系统启动后首先将会启动守护进程,守护进程将建立三个线程,第一线程用于跟驱动模块看门狗通信,第二线程用于监控应用进程;在应用层进程监控方法上使用于消息分发过程中的监控,由守护进程进行主导,第三线程异常处理线程,用于对异常消息的进程进行监控,而不是对所有进程都进行定时的监控,提高效率;
消息分发过程中,应用进程发送消息至守护进程时,守护进程将记录该消息的源和目的(这里不处理广播消息),同时将消息分发过去;
如果消息分发成功,则说明源,目的这两个进程都运行正常,将两个进程都加入到正常工作表中;
如果消息分发失败,说明目的进程存在问题,守护进程将该进程加入到异常处理表中,异常处理任务将会定时对该进程进行看门狗消息发送;此时守护进程主动发送看门狗消息至该目的进程,如果发送成功,则说明该进程运行正常,失败的消息加入到待发送的队列中,等待调度发送;
异常处理表中的进程都是消息未发送成功或者未收到消息转发的进程,守护进程将采用定时的机制对这些进程进行监控,同时不断将非异常进程加入到此表中,对所有的进程进行监控,防止遗失其他进程状态;
本发明提供的一种基于消息监控的软件看门狗系统的实现方法,每个软件系统都会有一个核心进程,目前实现的看门狗往往都是只针对各进程的监控,而对核心进程的监控则忽略,对于软件系统应用层来说,通过消息分发过程中记录进程状态可以做到快速对故障进程进行跟踪,提高效率;对于驱动层来说,可以明确系统核心进程的工作状态,通过一来一回的消息交互过程,可以知道系统工作状态,整个软件系统的应用层进程、核心进程都可做到监控;提高了效率,比单纯的定时对所有进程发送消息检测更有针对性。
以上对本发明的具体实施例进行了详细描述,但其只是作为范例,本发明并不限制于以上描述的具体实施例。对于本领域技术人员而言,任何对本发明进行的等同修改和替代也都在本发明的范畴之中。因此,在不脱离本发明的精神和范围下所作的均等变换和修改,都应涵盖在本发明的范围内。

Claims (6)

1.一种基于消息监控的软件看门狗系统的实现方法,其特征在于,包括应用进程的软件看门狗和系统看门狗两部分,所述该两部分的核心为消息监控,即通过消息交互的方法实现。
2.根据权利要求1所述的基于消息监控的软件看门狗系统的实现方法,其特征在于,所述系统看门狗实现过程的主要步骤如下:
所述系统看门狗随系统启动并以驱动模块的方式加载,创建一个可供监控进程读写的接口,用于接收监控进程的消息;
所述驱动模块中设有定时器,等待监控进程发送的消息,如果定时器超时后没有收到监控进程的消息,则看门狗将反向发送消息给监控进程;
如果此时仍然得不到监控进程的响应,则说明系统出现死锁或者主进程挂起的问题,此时看门狗将作出系统软重启的操作。
3.根据权利要求1所述的基于消息监控的软件看门狗系统的实现方法,其特征在于,所述应用进程的软件看门狗,用于主监控的守护进程的实现,在系统中守护进程的作用在于进程监控及消息分发,系统中的所有进程都必须注册一个看门狗消息,同守护进程建立消息连接通道,守护进程将记录各进程的状态信息。
4.根据权利要求3所述的基于消息监控的软件看门狗系统的实现方法,其特征在于,系统启动后首先将会启动守护进程,所述守护进程将建立三个线程,第一线程用于跟系统看门狗通信;第二线程用于监控应用进程,以及消息分发过程中的监控,并由守护进程进行主导;第二线程为异常处理线程,用于对异常消息的进程进行监控。
5.根据权利要求4所述的基于消息监控的软件看门狗系统的实现方法,其特征在于,所述软件看门狗工作流程如下:
应用进程发送消息至守护进程时,守护进程将记录该消息的源和目的并同时将消息分发回去;
如果消息分发成功,则说明源,目的这两个进程都运行正常,将两个进程都加入到正常工作表中;
如果消息分发失败,说明目的进程存在问题,守护进程将该进程加入到异常处理表中,异常处理任务将会定时对该进程的看门狗发送消息;
如果消息发送成功,则说明该进程运行正常,若发送失败,将失败的消息加入到待发送的队列中,等待调度发送。
6.根据权利要求4所述的基于消息监控的软件看门狗系统的实现方法,其特征在于,异常处理表中的进程都是消息未发送成功或者未收到消息转发的进程,守护进程将采用定时的机制对这些进程进行监控,同时不断将非异常进程加入到此表中,对所有的进程进行监控,防止遗失其他进程状态。
CN201610788410.6A 2016-08-31 2016-08-31 一种基于消息监控的软件看门狗实现方法 Pending CN106445712A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610788410.6A CN106445712A (zh) 2016-08-31 2016-08-31 一种基于消息监控的软件看门狗实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610788410.6A CN106445712A (zh) 2016-08-31 2016-08-31 一种基于消息监控的软件看门狗实现方法

Publications (1)

Publication Number Publication Date
CN106445712A true CN106445712A (zh) 2017-02-22

Family

ID=58165370

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610788410.6A Pending CN106445712A (zh) 2016-08-31 2016-08-31 一种基于消息监控的软件看门狗实现方法

Country Status (1)

Country Link
CN (1) CN106445712A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107766218A (zh) * 2017-10-12 2018-03-06 广东欧珀移动通信有限公司 系统优化方法、装置、存储介质及终端设备
CN108762886A (zh) * 2018-05-08 2018-11-06 烽火通信科技股份有限公司 虚拟机的故障检测恢复方法及系统
CN109891392A (zh) * 2017-09-30 2019-06-14 华为技术有限公司 一种系统服务超时的处理方法及装置
CN109992436A (zh) * 2017-12-29 2019-07-09 华为技术有限公司 线程阻塞检测方法及设备
CN112612635A (zh) * 2020-12-21 2021-04-06 杭州电子科技大学上虞科学与工程研究院有限公司 一种应用程序多层级保护方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5732245A (en) * 1993-12-09 1998-03-24 Pitney Bowes Inc. Multi-memory access limiting circuit for a multi-memory device
CN202433727U (zh) * 2011-12-16 2012-09-12 西安艾贝尔科技发展有限公司 一种基于分布式监控装置用的单片机数据采集单元
CN104636212A (zh) * 2014-12-29 2015-05-20 漳州科能电器有限公司 一种嵌入式操作系统看门狗实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5732245A (en) * 1993-12-09 1998-03-24 Pitney Bowes Inc. Multi-memory access limiting circuit for a multi-memory device
CN202433727U (zh) * 2011-12-16 2012-09-12 西安艾贝尔科技发展有限公司 一种基于分布式监控装置用的单片机数据采集单元
CN104636212A (zh) * 2014-12-29 2015-05-20 漳州科能电器有限公司 一种嵌入式操作系统看门狗实现方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109891392A (zh) * 2017-09-30 2019-06-14 华为技术有限公司 一种系统服务超时的处理方法及装置
CN109891392B (zh) * 2017-09-30 2022-01-11 华为技术有限公司 一种系统服务超时的处理方法及装置
US11693701B2 (en) 2017-09-30 2023-07-04 Huawei Technologies Co., Ltd. System service timeout processing method, and apparatus
CN107766218A (zh) * 2017-10-12 2018-03-06 广东欧珀移动通信有限公司 系统优化方法、装置、存储介质及终端设备
CN109992436A (zh) * 2017-12-29 2019-07-09 华为技术有限公司 线程阻塞检测方法及设备
CN108762886A (zh) * 2018-05-08 2018-11-06 烽火通信科技股份有限公司 虚拟机的故障检测恢复方法及系统
CN112612635A (zh) * 2020-12-21 2021-04-06 杭州电子科技大学上虞科学与工程研究院有限公司 一种应用程序多层级保护方法
CN112612635B (zh) * 2020-12-21 2022-06-10 杭州电子科技大学上虞科学与工程研究院有限公司 一种应用程序多层级保护方法

Similar Documents

Publication Publication Date Title
CN106445712A (zh) 一种基于消息监控的软件看门狗实现方法
JP6333965B2 (ja) ウェイクロック使用を追跡する技術
US9110867B2 (en) Providing application based monitoring and recovery for a hypervisor of an HA cluster
CN100568199C (zh) 管理多处理器操作
US6065123A (en) Computer system with unattended on-demand availability
JP3953549B2 (ja) マルチプロセッサ・クラスタ・メンバシップ・マネージャ・フレームワーク
US20120030670A1 (en) Providing Application High Availability in Highly-Available Virtual Machine Environments
US7856639B2 (en) Monitoring and controlling applications executing in a computing node
CN106293979A (zh) 检测进程无响应的方法和装置
CN101236515B (zh) 多核系统单核异常的恢复方法
CN102902583A (zh) 在挂起状态和执行状态下管理进程
US20100325642A1 (en) Automatically re-starting services
CN106598801A (zh) 一种协程监控方法及装置
CN107003896A (zh) 具有共享事务处理资源的装置和数据处理方法
CN102999384A (zh) 在挂起状态和执行状态下管理进程
CN1942863A (zh) 用于在奇偶错误检测之后维持数据完整性的装置和方法
CN110740145A (zh) 消息消费方法、装置、存储介质及电子设备
US6826761B1 (en) Efficient timer management system
CN112987891A (zh) 专用网卡过热保护的方法、电子设备及机器可读存储介质
CN110691401B (zh) 一种系统应用的管理方法及装置
CN108363629B (zh) 用于即时通信的方法、介质、装置和计算设备
CN115378685A (zh) 数据处理方法、系统、电子设备及计算机可读存储介质
CN101101558B (zh) 用于在电力中断后进行初始化的方法和系统
US11036551B2 (en) Durable program execution
CN113448695A (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170222

WD01 Invention patent application deemed withdrawn after publication