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