11.2. Preemption
プロセスは、完了したか、またはイベント (ディスクからのデータ、キー操作、またはネットワークパケットなど) を待機しているため、CPU に 自主的に優先度を譲ることがあります。
また、プロセスは 不本意に CPU に優先度を譲ることもあります。これは プリエンプション と呼ばれ、優先度の高いプロセスが CPU を使用する場合に起こります。プリエンプションはパフォーマンスに重大な影響を及ぼす可能性があります。また、継続的なプリエンプションにより、スロットリングと呼ばれる状態が発生する可能性があります。この問題は、プロセスは常にプリエンプティブされ、プロセスを完全に実行できない場合に発生します。
1 つのプロセスで自発的および自発的なプリエンプションが実行されるかどうかを確認するには、PID がプロセスの PID である、
/proc/PID/status
の内容を確認します。以下のコマンドは、PID 1000 のプロセスのプリエンプションを確認します。
~]# grep voluntary /proc/1000/status
voluntary_ctxt_switches: 194529
nonvoluntary_ctxt_switches: 195338
タスクの優先度を変更すると、自発的なプリエンプションを減らすことができます。