Watchdog

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Watchdog (ang. pies stróżujący) – urządzenie lub program, najczęściej układ elektroniczny, wykrywający błędne działanie systemu, próbujący je – bez udziału człowieka – naprawić i zapobiec poważniejszej awarii.

Potocznie: układ zabezpieczający system mikroprocesorowy przed zbyt długim przebywaniem w stanie zawieszenia.

Zasada działania[edytuj | edytuj kod]

Watchdog jednopoziomowy
Watchdog dwupoziomowy
Watchdog trzypoziomowy

Watchdog jest układem czasowym oczekującym na potwierdzenie poprawnej pracy od kontrolowanego urządzenia co określony czas. Brak potwierdzenia uważa za błąd i naprawia go najczęściej przez restart, rzadziej przerwanie niemaskowalne lub chwilowe wyłączenie zasilania.

Występuje w dwóch głównych wariantach: sprzętowym oraz programowym. Sprzętowy jest znacznie bardziej niezawodny, a programowy ma większe możliwości. Np. jeżeli przyczyną problemu jest wyciek pamięci, programowy zareaguje na zbyt małą ilość wolnej pamięci dając czas na łagodne zamknięcie systemu, bez utraty danych, a sprzętowy brutalnie zresetuje system po jego zawieszeniu, Sprzętowy natomiast znacznie lepiej radzi sobie z nieokreślonymi zakłóceniami np. od zasilania, oraz zabezpiecza przed błędami przed załadowaniem systemu.

Czasem stosuje się je razem łącząc ich zalety. Programowy jako podstawowy oraz sprzętowy dla błędów niewykrytych przez programowy.

W oprogramowaniu umieszcza się funkcję ustawiającą wartość licznika na pewną wartość początkową. Z upływem czasu mierzonego przez niezależny od procesora zegar, wartość licznika zmienia się - zwykle maleje. Jeśli osiągnie pewną wartość, zwykle jest nią 0, następuje opisane zresetowanie procesora lub generowane jest odpowiednie przerwanie. Jednym z założeń poprawnej pracy systemu z watchdogiem jest ustawianie co pewien czas wartości licznika na wartość początkową. Ta funkcja jest umieszczana w programach tak, by wykonywać się w interwałach krótszych niż czas wyzerowania licznika. Jeśli program przestanie działać poprawnie – np. wpadnie w nieskończoną pętlę lub ulegnie zakleszczeniu i nie będzie ustawiał licznika na nowo - można założyć, że restart jest uzasadniony. W ten sposób watchdog chroni system komputerowy przed nieprzewidzianym wstrzymaniem działania.

Zastosowanie[edytuj | edytuj kod]

Watchdog jest instalowany w systemach, które działają często bez obsługi człowieka, ich nieprzerwane działanie jest bardzo ważne lub działanie nieprzewidziane może być niebezpieczne. Są standardem w systemach wbudowanych funkcjonujących w różnych urządzeniach.

W większości współczesnych mikrokontrolerów watchdog jest jednym z elementów ich architektury i nie trzeba stosować dodatkowego sprzętu, a system udostępnia rozkazy procesora do ustawiania parametrów i resetowania watchdoga.

Niektóre systemy operacyjne udostępniają mechanizmy zapobiegające zawieszeniu się (zablokowaniu) systemu w przypadku jego błędu (panika jądra) oraz oprogramowanie obsługi watchdoga programowego i sprzętowego, np pakiet watchdog w Linuksie.

Podobne urządzenia[edytuj | edytuj kod]

Analogią watchdoga w technice niekomputerowej jest czuwak aktywny – maszynista musi co pewien czas naciskać przycisk. Jeśli nie zauważy sygnału świetlnego każącego mu nacisnąć przycisk i nie naciśnie przycisku w odpowiednim czasie, można założyć, że przestał kierować pociągiem. W tej niewłaściwej sytuacji pociąg zostaje zatrzymany automatycznie.

Sprawdzenie działania[edytuj | edytuj kod]

Watchdog serwera można sprawdzić np atakiem fork-bomba[1].

Zobacz też[edytuj | edytuj kod]

Przypisy

Bibliografia[edytuj | edytuj kod]

  • Magdalena Szymczyk "Projektowanie wbudowanych systemów sterowania odpornych na zakłócenia" (Pomiary Automatyka Robotyka 4/2009).