Jakie są kompromisy dla „busy wait” vs „sleep”?

Jest to rozszerzenie mojego poprzedniego pytania

Jak działa tryb blokowania w gniazdach unix / linux?

To, co teraz zbieram z Internetu, cały proces wywołujący blokujące wywołania, zostaje wstrzymany, dopóki program planujący nie znajdzie powodów, aby go odblokować. Przyczyny mogą się różnić w zależności od bufora pustego, aby bufor był pełny lub w jakimkolwiek innym stanie.

Ale czy może to być skuteczny sposób na pracę w czasie rzeczywistym, powiedzmy twarde / twarde aplikacje w czasie rzeczywistym? Ponieważ proces nie jest odblokowany, gdy warunek odblokowania jest prawdziwy, to kiedy program planujący daje mu swój kawałek procesora, a warunek odblokowania jest zarówno prawdziwy.

Tak jak gdybyś chciał rozwiązania responsywnego, to nie „spin blokady” lub „zajęty czek” to właściwy sposób na to, że warstwy procesora są marnowane, a cały system nie reaguje lub może słabo reagować.

Czy ktoś może usunąć te sprzeczne myśli.

questionAnswers(6)

yourAnswerToTheQuestion