12.2. プリエンプティブスケジューリング
リアルタイムプリエンプションとは、実行中のタスクを一時的に中断し、後で再開することを目的とした仕組みである。これは、より優先度の高いプロセスが CPU の使用を中断したときに発生します。プリエンプションはパフォーマンスに悪影響を与える可能性があり、頻繁なプリエンプションはスラッシングを引き起こす可能性があります。スラッシングとは、プロセスが絶えずプリエンプションされ、どのプロセスも完全に実行されない状態です。タスクの優先順位を変更することで、意図しない割り込みを減らすことができる。
/proc/PID/status ファイルの内容を表示することにより、単一のプロセスで発生する自発的および非自発的なプリエンプションを確認できます。ここで、PID はプロセス ID です。
次の例は、PID 1000 のプロセスのプリエンプションステータスを示しています。
# grep voluntary /proc/1000/status
voluntary_ctxt_switches: 194529
nonvoluntary_ctxt_switches: 195338