增强嵌入式系统健壮性的一种方法技术方案

技术编号:23470465 阅读:20 留言:0更新日期:2020-03-06 12:37
增强嵌入式系统健壮性的一种方法,涉及嵌入式系统,尤其是嵌入式操作系统中用户任务和守护进程的健壮性。嵌入式系统因为常用于物联网领域的无人值守场景,从而对其可靠性,尤其是用户任务的健壮性提出了很高的要求。通常是要求系统能够持续运行,即使由于系统内或系统外的原因导致程序死机,也能自动重启运行。对被监控的用户进程采用多个守护进程,多个守护进程既监听用户进程,又互相监听,并被硬件看门狗所监听。从而,在硬件看门狗和守护进程两个层面上最终保证了用户进程不会跑飞或停止,这样的效果好于单纯的一个守护进程或看门狗。

A method to enhance the robustness of embedded system

【技术实现步骤摘要】
增强嵌入式系统健壮性的一种方法
本专利技术涉及嵌入式系统,尤其是嵌入式操作系统中用户任务和守护进程的健壮性。
技术介绍
嵌入式系统因为常用于物联网领域的无人值守场景,从而对其可靠性,尤其是用户任务的健壮性提出了很高的要求。在很多情况下,往往不允许或没有条件像普通个人电脑和手持设备一样随时由操作者发现问题并重启。在其应用场景下,更多的是要求能够持续运行,即使由于系统内或系统外的原因导致程序死机,也能自动重启运行。在嵌入式系统中,一般的用户任务是在操作系统上以用户进程的方式运行。通常为了保证运行的健壮性,会为其提供一个守护进程来监控用户进程的状态、判断任务运行异常或者已经退出,根据需要重启该任务。另一种更为底层的方法是,使用硬件看门狗,即若用户进程不能及时喂狗则由看门狗重启设备。在物联网所用的嵌入式系统中,由于硬件资源的限制及软硬件的紧密耦合,上述两种方式都有一定的局限性。对第一种方式,由于守护进程本身也是有可能出问题的(尽管其可能性比用户进程小),在无人值守的场景下这种小概率事件也是灾难性的,因为没有人可以手动去“重启”一下程序或设备。对第二种方式,硬件看门狗重启设备,往往会影响其它进程或任务,所以应该尽可能避免不必要的重启设备。
技术实现思路
本专利技术针对上述情况,有机结合了进程重启与设备重启,对被监控的用户进程采用多个(典型值为两个)守护进程。多个守护进程既监听用户进程,又互相监听,并被硬件看门狗所监听。请参考图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中的线程。以上公开的仅为本方法的具体实施例,但是本方法并非局限于此,凡在本方法的精神和原则之内所做的任何修改、等同替换和改进等,均包含在本方法的保护范围之内。本文档来自技高网...

【技术保护点】
1.增强嵌入式系统健壮性的一种方法,其特征在于,该方法包括:/n(1)运行用户进程C,用于执行特定的用户任务;/n(2)运行守护进程A,用于监控用户进程C;/n(3)运行守护进程B,该进程与守护进程A互相监控;/n(4)使用硬件看门狗D,用于监控守护进程B。/n

【技术特征摘要】
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已停止。


...

【专利技术属性】
技术研发人员:张毓魏天鸿
申请(专利权)人:南京火零信息科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1