Watchdog
Z Wikipedii
Watchdog (ang. pies łańcuchowy) to urządzenie, najczęściej układ elektroniczny, chroniący system mikroprocesorowy przed zbyt długim przebywaniem w stanie zawieszenia. Jego działanie polega na zresetowaniu procesora w przypadku nieotrzymania w określonym czasie sygnału generowanego przez program.
W oprogramowaniu umieszcza się funkcję ustawiająca 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ę.
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.
W linuksie funcję programową, chroniącą przed zawieszeniem się (kernel panic), uruchamia się wpisując "1" do wirtualnego pliku komendą:
- echo "1" > /proc/sys/kernel/panic
Uwaga: wpisu należy dokonać automatycznie po każdym restarcie systemu.
Analogią watchdoga w technice niekomputerowej jest samoczynne hamowanie pociągu - maszynista musi co pewien czas naciskać przycisk. Jeśli nie zauważy sygnału świetlnego każącego mu nacisnać 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.