Temat: Programowanie pod linuxem
Darek M.:
Maciej G.:
Nie jest to tak jednoznaczne jak piszesz - ten "softdog" używa jednego z timerów procesora (hardware) i raczej nie zdechnie.
Zdechnie, bo jak kernel lezy, to nic nie dziala. Sprzetowe dzialaja odwrotnie - staja sie widoczne jako plik urzadzenia, do ktorego trzeba regularnie pisac (tak nieco upraszczajac). Brak zapisu oznacza, ze system lezy. Jak chwile polezy, to karta (ktora nadal dziala) wysyla reset na plyte. No i jest reset. Udaje sie wylacznie dlatego, ze karta dziala na zewnatrz systemu. Emulacja zdycha razem ze wszystkim.
Chyba nie wiesz, że większość CPU ma wbudowany "watch-dog timer" sprzętowy. Jak taki timer został odpowiednio zainicjowany (właśnie w module jądra podczas startu systemu) to działa na poziomie procesora i może dokonać restartu systemu nawet jak inne moduły jądra zdechły(jak niezależny sprzęt zewnetrzny). Poza tym w systemie operacyjnym nie wszystko jest czarno-białe ( jak w życiu) i czasami zdycha część demonów z jakiegoś specyficznego powodu (np. brak pamieci, za wysoka temperatura CPU), ale po wyeliminowaniu powodu można "umarłe" demony znów przywrócić do życia, bez restartu całego systemu i jądra - do tego służy wspomniany "watch-dog daemon" - teoretycznie można z niego kontrolować specyficzny proces )program usera).
Ten "watchdog timer" z jądra jest tak samo sprzętowy jak zewnętrzne urządzenia (no prawie).
Poczytaj sobie o architekturze nowoczesnych procesorów - szczególnie opartych na architekturze ARM, bo teraz bardzo duża część komputerów jest na nich oparta. Każdy w miarę aktualny ARM ma wbudowany sprzętowy "watch-dog timer" .
Patrz ten link:
http://infocenter.arm.com/help/index.jsp?topic=/com.ar...
Sytuacja o której piszesz: soft- dog timer może wystąpić tylko wtedy, kiedy platforma sprzętowa (CPU) nie ma hardwarowych timerów (aktualnie sytuacja bardzo rzadko spotykana, w przeszłości spotykana dużo częściej). Wtedy przy niesprzyjających warunkach (awaria jądra ) taka hipotetyczna sytuacja może wystąpić.
Nie wiem jak to jest aktualnie dla CPU Intela czy AMD (tam timery były kiedyś w osobnej kostce), ale nadal były to rozwiązania sprzętowe.
Pozdrawiam
Zrobiłem małe "investigation" i dla Intel'a WDT jest zlokalizowane w chipsecie dla CPU (ale jest to nadal pełnoprawne rozwiązanie sprzętowe). Nawet znalazłem info, iż jeden z "screen of death" dla Windowsa jest spowodowany właśnie przez 'watch-dog timer".
Patrz linki:
http://forums.guru3d.com/showthread.php?t=404409
https://hardforum.com/threads/what-is-intel-watchdog-ti...
http://www.reviversoft.com/pl/blog/2013/01/clock-watch...Ten post został edytowany przez Autora dnia 30.01.17 o godzinie 17:51