aosp ~ WatchDog

WatchDog简介

WatchDog机制最早来源于硬件,在计算机系统中,单片机的工作容易受到来自外界电磁场的干扰,而陷入死循环,系统无法继续工作,为了解决这个问题,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(WatchDog)。

“看门狗” 本身是一个定时器电路,内部会不断的进行计时(或计数)操作。计算机系统和“看门狗”有两个引脚相连接,正常运行时每隔一段时间就会通过其中一个引脚向“看门狗”发送信号,“看门狗”接收到信号后会将计时器清零并重新开始计时。而一旦系统出现问题,进入死循环或任何阻塞状态,不能及时发送信号让“看门狗”的计时器清零,当计时结束时,“看门狗”就会通过另一个引脚向系统发送“复位信号”,让系统重启。

这样看来,向“看门狗”发送信号就像是“喂狗”,计时器就是“看门狗”的胃,当计时结束,狗饿了,就一口把系统咬死,让它重生。软件上的看门狗技术的思想和影响类似,例如Linux自带的WatchDog。

系统进程WatchDog

 Android系统进程中的WatchDog(以下简称WD)自然是用来监测系统进程的,它和硬件上的WD有什么区别呢?

系统进程中维护着大量的服务对象,其中有一些非常重要的对象,例如ActivityManagerService, WindowManagerService 等,这些服务对象能够被正常访问对系统的运行来说至关重要,暂且称它们为关键对象。这些关键对象可能同时会被多个线程使用,所以需要在操作这些对象的地方使用同步锁将它们保护起来,确保对象状态的一致性。但是如果某个线程锁住关键对象后长时间没有释放锁,其他线程无法使用对象完成后续的任务,那么系统就会处于停滞状态无法运行,此时就需要让系统重启以恢复到一个正常的运行状态。检测这些关键服务对象是否被锁住,和重启系统的操作就是由WD完成的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值