看門(mén)狗watchdog的理解
1.什么是watchdog?
watchdog,中文名稱叫做“看門(mén)狗”,全稱watchdog timer,從字面上我們可以知道其實(shí)它屬于一種定時(shí)器。然而它與我們平常所接觸的定時(shí)器在作用上又有所不同。普通的定時(shí)器一般起記時(shí)作用,記時(shí)超時(shí)(Timer Out)則引起一個(gè)中斷,例如觸發(fā)一個(gè)系統(tǒng)時(shí)鐘中斷。熟悉windows開(kāi)發(fā)的朋友應(yīng)該用過(guò)windows的Timer,windows Timer的作用與方才所討論的定時(shí)器在功能上是相同的,只是windows Timer屬于軟件定時(shí)器,當(dāng)windows Timer記時(shí)超時(shí)則引起App向System發(fā)送一條消息從而觸發(fā)某個(gè)事件的發(fā)生。我們從以上的描述可知不論軟件定時(shí)器或硬件定時(shí)器他們的作用都是在某個(gè)時(shí)間點(diǎn)上引起一個(gè)事件的發(fā)生,對(duì)于硬件定時(shí)器來(lái)說(shuō)這個(gè)事件可能是通過(guò)中斷的形式得以表現(xiàn),對(duì)于軟件定時(shí)器,這個(gè)事件則可以是以系統(tǒng)消息的形式得以表現(xiàn)。正如本文開(kāi)頭所講的,watchdog本質(zhì)上是一種定時(shí)器,那么普通定時(shí)器所擁有的特征它也應(yīng)該具備,是的,當(dāng)它記時(shí)超時(shí)時(shí)也會(huì)引起事件的發(fā)生,只是這個(gè)事件除了可以是系統(tǒng)中斷外,它也可以是一個(gè)系統(tǒng)重起信號(hào)(Reset Signal),可以這么說(shuō)吧,能發(fā)送系統(tǒng)重起信號(hào)的定時(shí)器我們就叫它watchdog.
2.watchdog的工作描述
當(dāng)一個(gè)硬件系統(tǒng)開(kāi)啟了watchdog 功能,那么運(yùn)行在這個(gè)硬件系統(tǒng)之上的軟件必須在規(guī)定的時(shí)間間隔內(nèi)向watchdog發(fā)送一個(gè)信號(hào).這個(gè)行為簡(jiǎn)稱為"喂狗"(feed dog),以免watchdog記時(shí)超時(shí)引發(fā)系統(tǒng)重起。
3.watchdog存在的意義是什么?
你可能會(huì)問(wèn)watchdog存在的意義是什么?開(kāi)啟了watchdog之后軟件必須定時(shí)向它發(fā)信息,這不是麻煩又耗費(fèi)資源的行為嗎?其實(shí)這個(gè)行為很重要,這個(gè)行為是軟件向硬件報(bào)告自身運(yùn)行狀態(tài)的一中手法。一個(gè)軟件運(yùn)行良好,那么它應(yīng)該可以在規(guī)定的時(shí)間間隔內(nèi)向watchdog發(fā)送信息,這等同于軟件每隔一段時(shí)間就告訴硬件:“嘿,哥們,我在好好的跑著呢,你放心吧。”,若軟件由于某個(gè)不當(dāng)?shù)牟僮鞫M(jìn)入死循環(huán)(也就是俗稱的死機(jī)),則他無(wú)法向watchdog發(fā)送信息了,watchdog將發(fā)生記時(shí)超時(shí),從而引起硬件重起。如果沒(méi)有watchdog的存在,程序已經(jīng)死掉了,但我們的用戶還一頭霧水,以為系統(tǒng)正在進(jìn)行大規(guī)模的運(yùn)算而進(jìn)行耐心的等待。。。這一等可就是天荒地老啊。。。-_-!!