3.1 Watchdog简介
对于像笔者这样没玩过硬件的纯软程序员来说,第一次看到这个家伙的时候真心一头雾水,只是觉得这个名字很有意思。一番调查后发现,Watchdog机制最 早来源于硬件,在计算机系统中,单片机的工作容易受到来自外界电磁场的干扰,而陷入死循环,系统无法继续工作,为了解决这个问题,便产生了一种专门用于监 测单片机程序运行状态的芯片,俗称"看门狗"(Watchdog)。
“看门狗”本身是一个定时器电路,内部会不断的进行计时(或计数)操作。计算机系统和“看门狗”有两个引脚相连接,正常运行时每隔一段时间就会通过其中一 个引脚向“看门狗”发送信号,“看门狗”接收到信号后会将计时器清零并重新开始计时。而一旦系统出现问题,进入死循环或任何阻塞状态,不能及时发送信号让 “看门狗”的计时器清零,当计时结束时,“看门狗”就会通过另一个引脚向系统发送“复位信号”,让系统重启。
这样看来,向“看门狗”发送信号就像是“喂狗”,计时器就是“看门狗”的胃,当计时结束,狗饿了,就一口把系统咬死,让它重生。
软件上的看门狗技术的思想和影响类似,例如Linux自带的Watchdog。下面我们来看看Android系统进程的这条小狗吧。