CN110865900A - 增强嵌入式系统健壮性的一种方法 - Google Patents

增强嵌入式系统健壮性的一种方法 Download PDF

Info

Publication number
CN110865900A
CN110865900A CN202010057336.7A CN202010057336A CN110865900A CN 110865900 A CN110865900 A CN 110865900A CN 202010057336 A CN202010057336 A CN 202010057336A CN 110865900 A CN110865900 A CN 110865900A
Authority
CN
China
Prior art keywords
daemon
user
watchdog
embedded system
user process
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
CN202010057336.7A
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.)
Nanjing Fire Zero Mdt Infotech Ltd
Original Assignee
Nanjing Fire Zero Mdt Infotech 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 Nanjing Fire Zero Mdt Infotech Ltd filed Critical Nanjing Fire Zero Mdt Infotech Ltd
Priority to CN202010057336.7A priority Critical patent/CN110865900A/zh
Publication of CN110865900A publication Critical patent/CN110865900A/zh
Pending legal-status Critical Current

Links

Images

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
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/143Reconfiguring to eliminate the error with loss of software functionality

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

增强嵌入式系统健壮性的一种方法
技术领域
本发明涉及嵌入式系统,尤其是嵌入式操作系统中用户任务和守护进程的健壮性。
背景技术
嵌入式系统因为常用于物联网领域的无人值守场景,从而对其可靠性,尤其是用户任务的健壮性提出了很高的要求。在很多情况下,往往不允许或没有条件像普通个人电脑和手持设备一样随时由操作者发现问题并重启。在其应用场景下,更多的是要求能够持续运行,即使由于系统内或系统外的原因导致程序死机,也能自动重启运行。
在嵌入式系统中,一般的用户任务是在操作系统上以用户进程的方式运行。通常为了保证运行的健壮性,会为其提供一个守护进程来监控用户进程的状态、判断任务运行异常或者已经退出,根据需要重启该任务。另一种更为底层的方法是,使用硬件看门狗,即若用户进程不能及时喂狗则由看门狗重启设备。
在物联网所用的嵌入式系统中,由于硬件资源的限制及软硬件的紧密耦合,上述两种方式都有一定的局限性。对第一种方式,由于守护进程本身也是有可能出问题的(尽管其可能性比用户进程小),在无人值守的场景下这种小概率事件也是灾难性的,因为没有人可以手动去“重启”一下程序或设备。对第二种方式,硬件看门狗重启设备,往往会影响其它进程或任务,所以应该尽可能避免不必要的重启设备。
发明内容
本发明针对上述情况,有机结合了进程重启与设备重启,对被监控的用户进程采用多个(典型值为两个)守护进程。多个守护进程既监听用户进程,又互相监听,并被硬件看门狗所监听。请参考图1。其有益效果是:
1、守护进程至少有两个,他们之间互相监听,互为备份,以防守护进程出现意外;
2、硬件看门狗从系统层面进一步保证了守护进程的健壮性;
3、整体上,从硬件看门狗和守护进程两个层面上最终保证了用户进程不会跑飞或停止;这样的效果远好于单纯的一个守护进程或看门狗;
4、本方法中硬件看门狗只是监控守护进程,而没有直接监控用户进程,这没有增加对用户进程的额外负担或干扰;
5、本方法中虽然有多个守护进程,但是可以只使用其中一个守护进程来直接监控用户进程,这样也没有增加对用户进程的额外负担或干扰。
相应的方法内容如下(参见图1):
该方法包括:
(1)用户进程C(Customer),执行特定的用户任务;
(2)守护进程A,监控C;
(3)守护进程B,与A互相监控;
(4)硬件看门狗D(watchDog),监控B。
其进一步的功能描述如下:
当A监控到C出现运行异常或停止,则重启C。
A监控C的每一次消息处理过程,当A检测到C的阻塞时间超过设定阈值Tc,则判定C处于运行异常状态。
当A监控到C不存在,则判定C已停止。
当A监控到B出现异常或终止时,则重启B;当B监控到A出现异常或终止时,则重启A。
B对D的喂狗操作是,向D的特定地址写特定数据;如果B的喂狗时间间隔超出设定阈值Td,则由D重启系统。
上述硬件看门狗是系统级的,根据不同场景和不同的硬件实现方法,它可以是在嵌入式系统原有硬件之外另外安装的独立器件,也可以是嵌入式系统主控芯片SoC中的一个电路模块。如果它在设定时间Td内没有收到软件的喂狗操作,则通过将系统复位引脚置为有效值来重启系统。
附图说明
图1是本方法的整体功能图。
图2是本方法的守护进程A流程图。
图3是本方法的守护进程B流程图。
具体实施例
本方法可以在运行了嵌入式Linux系统的软硬件环境下实施,主要操作如下:
守护进程A监控用户进程C的每一次消息处理过程,只要出现阻塞超时(守护进程等待时间超过设定阈值Tc)就会重启被守护进程即用户进程C。
守护进程A定时扫描进程列表,如果出现被守护进程C的意外关闭那么可以由A立即重新开启被守护进程。
通过A和B这两个没有父进程的守护进程互相监控对方是否在运行,若出现一方意外中止,则另一方可以立即将其开启。
守护进程B定时喂硬件看门狗D,往特定地址写特定数据,若长时间(超过设定阈值Td)未喂狗则D会将系统重启。
D在设定时间Td内没有收到软件的喂狗操作,则通过将系统复位引脚置为有效值来重启系统。
通过以上操作来保证用户进程C一直处于活动状态(除了诸如意外停止与被重启之间的短暂时间)。
对于守护进程A,流程图参见图2:
1、启动守护进程A,判断用户进程是否存在,若存在则关闭;
2、判断与被守护进程通信的管道文件是否存在,若存在(可能因为上一次异常退出)则关闭;
3、以只读方式打开管道文件(在用户进程中是只写),并启动用户进程;
4、创建子进程,关闭父进程;
5、创建三个线程:(1)定时检查用户进程是否存在,若不存在则打开用户进程,(2)由管道接收用户进程发送来的信号,若其阻塞时长超过阈值Tc,则重启用户进程,(3)检查守护进程B是否存在,若不存在则打开B;
6、执行5中的三个线程。
对于守护进程B,流程图参见图3:
1、启动守护进程B;
2、创建子进程,关闭父进程;
3、创建两个线程:(1)检查守护进程A是否存在,若不存在则打开A,(2)定时喂硬件看门狗D;
4、执行3中的线程。
以上公开的仅为本方法的具体实施例,但是本方法并非局限于此,凡在本方法的精神和原则之内所做的任何修改、等同替换和改进等,均包含在本方法的保护范围之内。

Claims (8)

1.增强嵌入式系统健壮性的一种方法,其特征在于,该方法包括:
(1)运行用户进程C,用于执行特定的用户任务;
(2)运行守护进程A,用于监控用户进程C;
(3)运行守护进程B,该进程与守护进程A互相监控;
(4)使用硬件看门狗D,用于监控守护进程B。
2.根据权利要求1所述的增强嵌入式系统健壮性的一种方法,其特征在于,当守护进程A监控到用户进程C出现运行异常或停止,则由守护进程A重启用户进程C。
3.根据权利要求2所述的增强嵌入式系统健壮性的一种方法,其特征在于,守护进程A监控用户进程C的每一次消息处理过程,当守护进程A检测到用户进程C的阻塞时间超过设定阈值Tc,则判定用户进程C处于运行异常状态。
4.根据权利要求2所述的增强嵌入式系统健壮性的一种方法,其特征在于,当守护进程A监控到用户进程C不存在,则判定用户进程C已停止。
5.根据权利要求1所述的增强嵌入式系统健壮性的一种方法,其特征在于,当守护进程A监控到守护进程B出现异常或停止时,则由守护进程A重启守护进程B;当守护进程B监控到守护进程A出现异常或停止时,则由守护进程B重启守护进程A。
6.根据权利要求1所述的增强嵌入式系统健壮性的一种方法,其特征在于,守护进程B对硬件看门狗D的喂狗操作是,向硬件看门狗D的特定地址写特定数据;如果守护进程B的喂狗时间间隔超出设定阈值Td,则由硬件看门狗D重启系统。
7.根据权利要求1所述的增强嵌入式系统健壮性的一种方法,其特征在于,硬件看门狗D是在嵌入式系统原有硬件之外另外安装的独立器件,或者是嵌入式系统主控芯片中的一个看门狗电路模块。
8.根据权利要求1所述的增强嵌入式系统健壮性的一种方法,其特征在于,硬件看门狗D如果在设定时间Td内没有收到来自软件的喂狗操作,则通过将系统复位引脚置为有效值来重启系统。
CN202010057336.7A 2020-01-19 2020-01-19 增强嵌入式系统健壮性的一种方法 Pending CN110865900A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010057336.7A CN110865900A (zh) 2020-01-19 2020-01-19 增强嵌入式系统健壮性的一种方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010057336.7A CN110865900A (zh) 2020-01-19 2020-01-19 增强嵌入式系统健壮性的一种方法

Publications (1)

Publication Number Publication Date
CN110865900A true CN110865900A (zh) 2020-03-06

Family

ID=69660084

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010057336.7A Pending CN110865900A (zh) 2020-01-19 2020-01-19 增强嵌入式系统健壮性的一种方法

Country Status (1)

Country Link
CN (1) CN110865900A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111352803A (zh) * 2020-03-09 2020-06-30 广州市百果园信息技术有限公司 业务数据处理方法、装置、设备和存储介质
CN112612635A (zh) * 2020-12-21 2021-04-06 杭州电子科技大学上虞科学与工程研究院有限公司 一种应用程序多层级保护方法
CN114791835A (zh) * 2022-03-16 2022-07-26 青岛海尔科技有限公司 程序重启方法及装置、存储介质及电子装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103795786A (zh) * 2014-01-20 2014-05-14 杭州百富电子技术有限公司 具有web服务功能的嵌入式集中器系统
CN110554966A (zh) * 2019-09-09 2019-12-10 深圳市鼎阳科技有限公司 一种驱动调试方法、行为分析方法及驱动调试系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103795786A (zh) * 2014-01-20 2014-05-14 杭州百富电子技术有限公司 具有web服务功能的嵌入式集中器系统
CN110554966A (zh) * 2019-09-09 2019-12-10 深圳市鼎阳科技有限公司 一种驱动调试方法、行为分析方法及驱动调试系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111352803A (zh) * 2020-03-09 2020-06-30 广州市百果园信息技术有限公司 业务数据处理方法、装置、设备和存储介质
CN112612635A (zh) * 2020-12-21 2021-04-06 杭州电子科技大学上虞科学与工程研究院有限公司 一种应用程序多层级保护方法
CN112612635B (zh) * 2020-12-21 2022-06-10 杭州电子科技大学上虞科学与工程研究院有限公司 一种应用程序多层级保护方法
CN114791835A (zh) * 2022-03-16 2022-07-26 青岛海尔科技有限公司 程序重启方法及装置、存储介质及电子装置
CN114791835B (zh) * 2022-03-16 2023-11-28 青岛海尔科技有限公司 程序重启方法及装置、存储介质及电子装置

Similar Documents

Publication Publication Date Title
CN110865900A (zh) 增强嵌入式系统健壮性的一种方法
US7823021B2 (en) Software process monitor
US7243267B2 (en) Automatic failure detection and recovery of applications
EP1351145A1 (en) Computer failure recovery and notification system
US7558986B2 (en) Software process monitor
KR101581608B1 (ko) 프로세서 시스템
US8332826B2 (en) Software process monitor
US10250325B2 (en) Network switching system
WO2018095107A1 (zh) 一种bios程序的异常处理方法及装置
US20170147422A1 (en) External software fault detection system for distributed multi-cpu architecture
CN102761439A (zh) Pon接入系统中基于看门狗的异常检测记录装置及方法
US10921871B2 (en) BAS/HVAC control device automatic failure recovery
CN101221518B (zh) 一种防止硬件看门狗的定时器溢出的方法、装置与系统
US8392643B2 (en) Data processing device, semiconductor integrated circuit device, and abnormality detection method
EP1851639B1 (en) System and method for effectively implementing an immunity mode in an electronic device
US20220055637A1 (en) Electronic control unit and computer readable medium
CN117130832B (zh) 多核异构系统的监控复位方法、系统、芯片及电子设备
CN115904793B (zh) 一种基于多核异构系统的内存转存方法、系统及芯片
JP2009223582A (ja) 情報処理装置、情報処理装置の制御方法および制御プログラム
WO2008004330A1 (fr) Système à processeurs multiples
CN115576734B (zh) 一种多核异构日志存储方法和系统
EP1891527B1 (en) SOFTWARE PROCESS MONITOR for detecting and recovering from abnormal process termination
JP2008152552A (ja) 計算機システム及び障害情報管理方法
KR101300806B1 (ko) 다중 프로세스 시스템에서 오동작 처리 장치 및 방법
US8478923B2 (en) Interrupt suppression by processing just first interrupt of a same type

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200306