web-dev-qa-db-ja.com

ハードウェアウォッチドッグとソフトウェアウォッチドッグの違いは何ですか?

ハードウェアウォッチドッグとソフトウェアウォッチドッグの違いは何ですか?

12
M Sharath Hegde

ソフトウェアによってシャットダウンが(定期的に)防止されない場合、HWウォッチドッグはシステムを自動的にリセットします。 SWウォッチドッグOTOHは、CPU時間を与えられた場合にのみ、何かを実行できます。したがって、システムをリセットする必要があるかどうかを定期的にチェックし、HWをプログラミングしてそれに応答する必要があります。

その結果、SWウォッチドッグはシステム全体のクラッシュに応答できない可能性があります。

それらの典型的なプログラミングモデルは次のとおりです。

HW watchdog:   [HW circuit]  <-- [low priority timer interrupt postponing reset]
--
vs.
--
SW watchdog:   [Low priority SW process feeding SW Watchdog]
           +   [High priority SW process requiring "food"]
9
Aki Suihkonen

ハードウェアウォッチドッグはハードウェアです。ソフトウェアウォッチドッグはソフトウェアです。ハードウェアウォッチドッグの場合、十分な頻度でキックされないと、ソフトウェアがハングしたと見なし、通常はシステムをリセットするか、設計で指示されているものをリセットするハードウェアがあります。ハードウェアはソフトウェアよりも信頼性が高いと想定されています。ソフトウェアウォッチドッグの場合、あるソフトウェアタスク/スレッド/その他のものよりも信頼性が高いと見なされます。疑わしいコードが信頼できるコードをキックできない場合、信頼できるコードは疑わしいコード(または設計で指示されたもの)を強制終了します。ソフトウェアウォッチドッグを含むすべてのコードをダウンさせる可能性のあるハードウェアが原因で疑わしいコードが失敗した場合、問題が発生します。したがって、ソフトウェアウォッチドッグは、問題のタスクよりも信頼性の高い方法でウォッチドッグを実行している場合にのみ役立ちます。たとえば、タスクがメモリスペースから外れて保護違反になるのを防ぐために、ウォッチドッグが存在する場合があります。 (ウォッチドッグを設定するのではなく、フォールトハンドラーで監視することもできますが、とにかく)...

11
old_timer