unistd.h で宣言されている sleep 関数について質問があります。
CFS スケジューラを使用するとします。
実行する準備ができているプロセスがあり(これを「READY」状態と呼びましょう)、実行するために選択され、現在実行中です(いわゆる「RUNNING」状態)。
RUNNING 状態での実行中に、10 秒間、またはシグナルが配信されるまで、またはいずれか早い方までスリープ状態にする sleep(10) などのスリープ ステートメントに遭遇します。
sleep(10) が実行されている場合、プロセスは READY 状態にあるか、RUNNING キューで元の優先度に戻されるか、WAIT キューに置かれます。
イベントの正しい順序を視覚化できません。ある考えでは、READY キューに残っていると考えられますが、別の考えでは、何らかのタイマーの期限切れを待って WAIT キューに入れられます。
これがどのように機能するか、または私の質問に何か問題がある場合はお知らせください。ありがとう