看門狗定時器
編輯看門狗定時器(有時被稱為計算機正常運行時間或COP定時器,或簡稱看門狗)是一種電子或軟件定時器,用于檢測和恢復計算機故障。看門狗定時器廣泛用于計算機中,以促進自動糾正暫時的硬件故障,并防止錯誤的或惡意的軟件破壞系統的運行。在正常運行期間,計算機定期重啟看門狗定時器,以防止其過期或超時。如果由于硬件故障或程序錯誤,計算機未能重新啟動看門狗,則定時器將過期并產生一個超時信號。這個超時信號被用來啟動糾正措施。糾正措施通常包括將計算機和相關硬件置于安全狀態并調用計算機重啟。微控制器通常包括一個集成的、片上的看門狗。在其他計算機中,看門狗可能存在于直接連接到CPU的附近的芯片中,或者它可能位于計算機/機箱的外部擴展卡上。
應用
編輯看門狗定時器通常出現在嵌入式系統和其他計算機控制的設備中,在這些設備中,人不能輕易訪問該設備,或不能及時對故障作出反應。在這樣的系統中,計算機不能依靠人類在其掛起時調用重啟;它必須自力更生。例如,遠程嵌入式系統,如空間探測器,是人類操作員無法進入的;如果這些系統不能從故障中自主恢復,它們可能會成為xxx殘疾。在機器人和其他自動化機器中,控制計算機的故障可能會在人類做出反應之前對設備造成損害或傷害,即使該計算機很容易進入。在這種情況下,看門狗定時器經常被使用。看門狗定時器也被用來監測和限制正常運行的計算機上的軟件執行時間。例如,當在沙盒中運行不受信任的代碼時,看門狗定時器可用于限制代碼的CPU時間,以防止某些類型的拒絕服務攻擊。在實時操作系統中,看門狗定時器可用于監控一個時間緊迫的任務,以確保它在分配的xxx時間內完成,如果它未能完成,則終止該任務并報告失敗。
架構和操作
編輯重啟
重啟看門狗定時器的行為通常被稱為踢開看門狗。通常通過寫到看門狗控制端口或設置寄存器中的一個特定位來完成啟動。另外,一些緊密耦合的看門狗定時器是通過執行特殊的機器語言指令來啟動的。這方面的一個例子是一些PIC微控制器的指令集中的CLRWDT(清除看門狗定時器)指令。在運行操作系統的計算機中,看門狗重啟通常是通過設備驅動程序調用的。例如,在Linux操作系統中,用戶空間程序將通過與看門狗設備驅動程序交互來啟動看門狗,通常是通過向/dev/watchdog寫0字符或調用KEEPALIVEioctl.設備驅動程序的作用是將看門狗硬件從用戶空間程序中抽象出來,也可用于配置超時周期、啟動和停止定時器。一些看門狗定時器只允許在一個特定的時間窗口內踢球。窗口時間通常是相對于前一次踢的時間,或者,如果看門狗沒有被踢過,是相對于看門狗被啟用的時刻。窗口在前一次踢球后的延遲后開始,在進一步延遲后結束。如果計算機試圖在該窗口之前或之后踢看門狗,看門狗將不會被重新啟動,在某些實現中,這將被認為是一個故障并觸發糾正措施。
啟用
看門狗定時器在運行時被稱為啟用,空閑時被稱為禁用。上電后,看門狗可以無條件啟用,也可以最初禁用,需要一個外部信號來啟用它。在后一種情況下,使能信號可以由硬件自動產生或在軟件控制下產生。當自動生成時,啟用信號通常來自于計算機復位信號。在一些系統中,復位信號被直接用于啟用看門狗。在其他系統中,復位信號被延遲,使看門狗在復位后的某個時間被啟用。這種延遲使計算機在看門狗被啟用前有時間啟動。如果沒有這個延遲,看門狗就會超時,并在計算機運行其應用軟件--啟動看門狗的軟件--之前調用后續的復位,系統就會陷入無休止的不完全重啟循環中。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/189999/