Czy są jakieś wady uruchamiania procesów z priorytetem w czasie rzeczywistym ( chrt -f 99
)?
Moja hipoteza jest taka, że w połączeniu z powinowactwem zapewni, że wszelkie uprzedzenia mojego procesu będą minimalne, a zatem wszelkie jitter (szczególnie opóźnienie sieci) zostanie zminimalizowane - nie pomoże to w całkowitym opóźnieniu, ale w tej chwili jestem bardziej dotyczy jittera.
(Jądro: 2.6.16 / 3.0)
Odpowiedzi:
Najbardziej bezpośrednim minusem uruchamiania procesu w czasie rzeczywistym jest to, że proces ten może z łatwością zagłodzić każdy inny proces w systemie. Z twojego punktu widzenia wynik będzie taki, że komputer całkowicie nie będzie reagował na klawiaturę, mysz i prawdopodobnie sieć, dopóki proces procesora używa procesora w czasie rzeczywistym. Może się to zdarzyć, jeśli coś pójdzie nie tak i proces przejdzie w nieskończoną pętlę, lub nawet tymczasowo, jeśli proces rozpocznie długotrwałe obliczenia bez okresowego oczekiwania na dane wejściowe. (Na przykład nie uruchamiaj SETI @ home z priorytetem w czasie rzeczywistym).
Sam proces jednowątkowy na wielordzeniowym procesorze jest mniej prawdopodobny, aby powodować ten problem, ponieważ istnieją inne rdzenie, które mogą wykorzystywać proces o niższym priorytecie. Ale jeśli proces ten utworzy jakiekolwiek procesy potomne, odziedziczą ten sam priorytet w czasie rzeczywistym, więc rzeczy mogą wymknąć się spod kontroli, jeśli nie będziesz ostrożny.
Strona
sched_setscheduler(2)
podręcznika ma dobrą radę:To powinna być powłoka na konsoli - nie pod Xterm, chyba że chcesz nadać wszystkim X także priorytet w czasie rzeczywistym.
źródło