Watchdog

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

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

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

Spis treści

Zasada działania [edytuj]

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), co określony czas. Jeśli osiągnie pewną wartość, zwykle jest nią 0, następuje opisane zresetowanie procesora lub generowane jest przerwanie. Jednym z założeń poprawnej pracy systemu z watchdogiem jest ustawianie na nowo wartości licznika co pewien czas. Ta funkcja jest umieszczana w programach tak, by wykonywać się co czas mniejszy od czasu wyzerowania licznika. Jeśli program przestanie działać poprawnie – np.: wpadnie w wieczną pętlę lub zakleszczy się i nie będzie ustawiał licznika na nowo, można założyć że reset jest uzasadniony. W ten sposób watchdog chroni system komputerowy przed nieprzewidzianym zatrzymaniem się.

Zastosowanie [edytuj]

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]

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.

Zobacz też [edytuj]

Literatura [edytuj]

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