Linuxスケジューリングのオーバーヘッドは何桁ですか?

Linuxスケジューリングのオーバーヘッドは何桁ですか?

LinuxにO(1)スケジューラがあることを読んでいますが、コンテキスト切り替えに実際にかかる時間はわかりません。現在数字を知っている人はいますか?

CPUの種類、周波数、DRAM接続、キャッシュなどの多くの要因によって異なりますが、ミリ秒、マイクロ秒、ナノ秒単位、または必要なおおよそのプロセッササイクル数を知りたいです。プロセスを先取りし、実行する次のプロセスを決定し、実際に開始します。

答え1

Linuxのデフォルトスケジューラはまだサポートされていません。複雑さ(1)過去10年間のスケジューラは完全に公正なスケジューラ今すぐあ(ログイン)実行キューのジョブ数。特定のシステムとワークロードに関心のある特定のシナリオをベンチマークする必要があります。通常、数字でインターネット上のベンチマークを見つけることができます。約0.5~2μs コンテキストスイッチごと、以前にCPUからスケジュールされていないジョブに切り替えた場合も同様です。

言うように、オーバーヘッドはさまざまなキャッシュにコードとデータがあるかどうかなど、状況によって大きく異なります。今日のオーバーヘッドは、カーネルのバージョンと設定、特にどのセキュリティ対策が有効になっていて、CPUがそれをどれだけうまくサポートしているかによって異なります。最近の論文後者の相対数値が提供され、4.0ベースラインと比較して-14%から+98%の範囲の変化があります。

関連情報