Was sind Kompromisse zwischen „beschäftigt warten“ und „schlafen“?

Dies ist eine Erweiterung meiner vorherigen Frage

Wie funktioniert der Blockierungsmodus in Unix / Linux-Sockets?

Was ich jetzt aus dem Internet erfahre, alle Prozesse, die blockierende Anrufe auslösen, werden in den Ruhezustand versetzt, bis der Planer die Gründe für die Freigabe findet. Die Gründe können von Puffer leer zu Puffer voll bis zu einer anderen Bedingung variieren.

Aber kann dies dann ein effizienter Weg zu Echtzeitanwendungen sein, sagen wir, zu harten / festen Echtzeitanwendungen? Da der Prozess nicht entsperrt wird, wenn die Entsperrungsbedingung wahr ist, sondern wenn der Scheduler ihm seinen CPU-Anteil gibt und die Entsperrungsbedingung beide wahr ist.

Als ob Sie eine reaktionsschnelle Lösung wollen, sind diese "Spin-Locks" oder "Busy Waits" nicht der richtige Weg, CPU-Slices werden verschwendet und das gesamte System reagiert möglicherweise nicht oder nur schlecht.

Kann jemand bitte diese widersprüchlichen Gedanken klären.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage