昨晚做了个很奇怪的梦,梦到我和一帮伙伴在一个秘境中探索,发现了秘境中很多奇异之处,不过最奇异的地方是一扇布满魔力纹理的石门。最终我和小伙伴们推开石门走了进去,发现这是一个令人向往的崭新世界。
(图源 :pixabay)
虽然对新世界充满好奇,但是我有忍忍的不安,我有种预感一旦我离开石门一定距离,那么石门将会消失,我将无法再回到之前的世界里。
这是我的大脑发出警告,已经有超过几秒的时间没有联系到我的身体了,如果再不采取措施,我的身体将会与大脑彻底失联!
于是我吓得赶紧回到石门之内,一阵天旋地转之后,我不是回到之前正在探索的秘境,而是直接从睡梦中惊醒过来。
醒来之后我就在思索,如果不是之前大脑给的警告信号,如果我在梦中远离石门彻底迷失于新世界当中,那么我会不会永远就不会醒来?变成一个植物人?越想越觉得有这种可能,而且可能性还挺高的。
虽然新世界也很令人向往,不过我还没有做好准备现在就放下一切去探索,所以感谢大脑发出的与身体失联的警告信号,把我拯救了回来。
而这个大脑(确切地说是精神)和身体失联的信号,隐隐让我感觉有些熟悉,仔细一想,这不是单片机编程中的看门狗嘛?
所谓的看门狗,是一种单片机定时器硬件,当这种定时器到达计数周期后,就会给单片机发出中断或者系统复位信号,单片机就会重启。
我们在程序中启用看门狗之后,可以在看门狗达到计数周期阈值之前给看门狗一个复位信号,这样程序就可以一直正常地运行下去。
而一旦因为某种原因程序死机了,那么程序中的看门狗复位信号就会无法正确送达,看门狗就会达到技术周期,单片机就会倍复位,这样程序又可以重新运行了。
对应到我的梦境,我的大脑(精神层面)启动了一个看门狗硬件,比如设定的计数器周期为30秒。然后我身体会间隔10秒给大脑回馈信号“我在呢!”。
当身体和精神失联,那么身体回馈的信息就无法送达到大脑,然后计数就会一直增加到30秒,就会激发一个复位信号,于是我从梦中惊醒过来。身体重新和精神建立起来关联,我又活过来啦。
这样一想,发现其实生活中我们都在不知不觉地用着看门狗(Watchdog ),比如我在外地读书时,每周必须打一个电话回家,这就相当于我给家里回馈信号:“我还好!”。
而现在我每周至少要给家里打一次视频通话,不过这次是相当于从家里获取信号:父母亲一切安好!。类似的事情还有很多,就不一一举例啦。
仔细想想,还真挺有趣的,我们不知不觉中就用上了看门狗机制呢。也幸亏就这个机制,不然我就一梦不醒啦。
(图源 :pixabay)
对了,硬件中一般把这个机制叫做看门狗(Watchdog ),软件中则把这个叫做心跳包(Heartbeat),其实都是一类机制差不多的啦,对了,请叫我差不多先生。
想起以前还写过Arduino看门狗使用的教程,放文末链接中,感兴趣的可以去看热闹哦。