喂狗超时问题分析

本文主要探讨了Linux系统中遇到的喂狗超时问题,从SHTML与SSI的基础知识出发,结合卡尔曼滤波的理论,深入分析了shell脚本中的字符串操作和Java错误处理。同时,文章还总结了Linux设备驱动和dhcp配置的相关知识,对于理解Unix文件软链接和解决Linux内核问题提供了实用技巧。
摘要由CSDN通过智能技术生成
 
 
一般OS都是在系统调度定时器中区喂狗。外部看门狗一般是1s左右,调度通常是n ms,因此只要系统正常跑的时候外部看门狗都不会复位。
 
如果程序运行过程中外部看门狗复位了,一般是关中断时间过长或者关中断后进入死循环了。
 
关中断时间过长:
开关中断通常是调用系统的接口函数。如果是存在关中断时间比较临界的情况,可以在调用开关中断的接口中挂钩子函数,统计每次关中断时间的长度。如果中断时间超过预设的阀值,打印出调用地方(文件名/函数名/代码行,需编译器支持),打印进程/线程名和堆栈回溯(需CPU支持)。
 
关中断后进入死循环了:
这个时候中断已经关了,cpu自己又在死循环里面。要知道CPU在哪里死循环,需要额外的手段。对于MIPS和PPC,有一种中断就非屏蔽中断--NMI。即使在关中断的情况下,CPU也可以相应NMI中断。如果CPU可以将NMI向量入口定向到异常处理程序入口,则可以在异常处理中找出在哪里死循环了。
那怎样才能产生NMI中断?通常使用最多的是使用CPU内置的看门狗定时器产生或者外部中断引脚。
如果CPU内置看门狗和外部中断都不能用那就麻烦了。不过办法总比问题多,想想总有办法的。
 
另,对于MIPS和PPC异常比中断优先级高。想办法让CPU产生异常也就可以了。
 
第3种可能是CPU死掉了。broadcom的CPU就存在这种情况。如果某些外设core
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值