ウォッチドッグタイマー
ウォッチドッグタイマー (watchdog timer) は、コンピュータシステムにおいて定期的に発動することで、システムが機能し続けていることを確認させるためのタイマーである。
概略
![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Wdctl_screenshot.png/330px-Wdctl_screenshot.png)
wdctl
のスクリーンショット メインのプログラムがハングアップなどの不正な状態に陥ってしまい、規則的なウォッチドッグ操作(「犬をなでる」とも呼ばれる「サービスパルス」の書き込み)が行なわれなかった(タイムアウト)場合に、例外処理が実行される。例外処理は、ハングアップしたシステムを正常動作に戻すことを目的としてシステムをリセットする場合が多いが、電源切断によりシステムを強制停止させるものや電源を切断した後に再投入するものもある。
確実さのため、ハードウェアに組み込まれることも多いが、ソフトウェアで実装することが必ずしも無意味ではない。「ハードウェア的には健全に見えるが、ソフトウェア的には機能していないシステム」もまた、異常として検出されねばならず、そのためには何らかのソフトウェアウォッチドッグタイマーが必要である。
障害を引き起こした問題のデバッグに役立つ情報などを媒体に保存する機能を持つ場合、ウォッチドッグタイマーはより複雑なこともある。たとえば、最初のウォッチドッグタイマーのタイムアウトによって開始された情報の保存処理がある時間内に完了しなかった場合、情報が保存されていてもいなくても、2番目のシンプルなウォッチドッグタイマーがシステムを確実にリセットさせる。ウォッチドッグタイマーが最も多く使われているのは組み込みシステムで、マイクロコントローラに内蔵されていることも多い。
また、制御システムを安全側に倒すためのトリガーとして使われることもある。たとえば、モーターや高電圧の電気出力やその他の潜在的に危険なサブシステムを、障害が解決するまで停止させておく、などである。
たとえば、 x-bit カウンタ で実装されているウォッチドッグタイマーが y MHz のクロックで動作しているシステムでは、タイマーがリセットされなければ 2x / (y×106) 秒後にシステムは例外処理が実行される。
システム内部の人間系の不全(死亡、意識不明、不在など)を検知する類似の機構はデッドマン装置と呼ばれる。
構成および動作
シングルステージ ウォッチドッグタイマー
![Block diagram of a simple, single-stage watchdog timer. The common clock is characteristic of basic watchdog microcontrollers.](http://upload.wikimedia.org/wikipedia/commons/thumb/7/71/SimpleWatchdogTimer.gif/300px-SimpleWatchdogTimer.gif)
マルチステージ ウォッチドッグタイマー
![A three-stage electronic watchdog timer.](http://upload.wikimedia.org/wikipedia/commons/thumb/7/70/Watchdog3stage.gif/550px-Watchdog3stage.gif)
関連項目
- 制御工学
- 組み込みシステム
- カウンタ (電子回路)
- MIDI - 300ミリ秒周期で「アクティブセンシング」という信号が送られている。この信号を受信できないと断線していると判断する。
- デッドマン装置 - システム内の人間系が正常に動作しているか確認する類似の仕組み(鉄道車両の運転士やロボットのオペレーターなどの不在や意識不明を検知する機構)。
外部リンク
- One design for a hardware watchdog (PDF)