ウォッチドッグタイマー

ウォッチドッグタイマー (watchdog timer) は、コンピュータシステムにおいて定期的に発動することで、システムが機能し続けていることを確認させるためのタイマーである。
概略.
メインのプログラムがハングアップなどの不正な状態に陥ってしまい、規則的なウォッチドッグ操作（「犬をなでる」とも呼ばれる「サービスパルス」の書き込み）が行なわれなかった（タイムアウト）場合に、例外処理が実行される。例外処理は、ハングアップしたシステムを正常動作に戻すことを目的としてシステムをリセットする場合が多いが、電源切断によりシステムを強制停止させるものや電源を切断した後に再投入するものもある。
確実さのため、ハードウェアに組み込まれることも多いが、ソフトウェアで実装することが必ずしも無意味ではない。「ハードウェア的には健全に見えるが、ソフトウェア的には機能していないシステム」もまた、異常として検出されねばならず、そのためには何らかのソフトウェアウォッチドッグタイマーが必要である。
障害を引き起こした問題のデバッグに役立つ情報などを媒体に保存する機能を持つ場合、ウォッチドッグタイマーはより複雑なこともある。たとえば、最初のウォッチドッグタイマーのタイムアウトによって開始された情報の保存処理がある時間内に完了しなかった場合、情報が保存されていてもいなくても、2番目のシンプルなウォッチドッグタイマーがシステムを確実にリセットさせる。ウォッチドッグタイマーが最も多く使われているのは組み込みシステムで、マイクロコントローラに内蔵されていることも多い。
また、制御システムを安全側に倒すためのトリガーとして使われることもある。たとえば、モーターや高電圧の電気出力やその他の潜在的に危険なサブシステムを、障害が解決するまで停止させておく、などである。
たとえば、 x-bit カウンタ で実装されているウォッチドッグタイマーが y MHz のクロックで動作しているシステムでは、タイマーがリセットされなければ 2x / (y×106) 秒後にシステムは例外処理が実行される。
システム内部の人間系の不全（死亡、意識不明、不在など）を検知する類似の機構はデッドマン装置と呼ばれる。