Watchdog – to urządzenie lub program, który monitoruje działanie systemu, identyfikuje błędy i podejmuje działania naprawcze bez interwencji człowieka. Jego głównym celem jest zapobieganie poważniejszym awariom w systemach mikroprocesorowych.
Zasada działania
Watchdog działa na zasadzie ustawiania licznika, który odmierza czas do momentu, w którym oczekuje na potwierdzenie prawidłowego funkcjonowania systemu. Jeśli nie otrzyma takiego potwierdzenia w wyznaczonym czasie, traktuje to jako błąd i podejmuje działania, takie jak:
- restart systemu
- przerwanie działania
- wygaszenie zasilania
Watchdog występuje w dwóch głównych wariantach:
- Sprzętowy – bardziej niezawodny, skutecznie radzący sobie z zakłóceniami oraz błędami, które mogą wystąpić przed załadowaniem systemu.
- Programowy – bardziej elastyczny, pozwala na zaawansowaną konfigurację i może reagować na sytuacje takie jak wyciek pamięci.
Często stosuje się oba rozwiązania jednocześnie, łącząc ich zalety.
Zastosowanie
Watchdog jest kluczowy w systemach, które działają bez nadzoru człowieka, szczególnie w systemach wbudowanych, gdzie nieprzerwana praca jest istotna. Współczesne mikrokontrolery często mają wbudowane mechanizmy watchdogów, eliminując potrzebę stosowania dodatkowych komponentów. Niektóre systemy operacyjne, takie jak Linux, oferują wsparcie dla funkcji watchdog, pomagając w zapobieganiu zawieszeniom systemu.
Podobne urządzenia
Analogią dla watchdoga w technice niekomputerowej jest czuwak aktywny, gdzie maszynista musi regularnie naciskać przycisk. Jeśli nie zareaguje na sygnał, pociąg zostaje automatycznie zatrzymany.
Sprawdzenie działania
Funkcjonalność watchdoga można przetestować, stosując na przykład atak fork-bomba, który generuje sytuację, w której system może ulec zawieszeniu.