2012-03-23 14 views
1

私に質問に答えることができる有益なLinuxの教員がいれば驚くべきことがあります。私はスケジューラがCPUとIOバインドされたプロセスに対してより効率的/効果的な私のOSクラスの統計分析を行ってきました。私が説明できないGNU時間から得た1つの結果は、なぜSCHED_OTHERで実行される同一のプロセスが、SCHED_RRとSCHED_FIFO(CPUバインドプロセス用)よりも少ないユーザー時間で完了するかということです。ユーザーの時間はスケジュールポリシーから独立していると思っていました。誰もが光を放つか、これを説明できるリソースに私を指摘することができますか?Linux SCHED_OTHER(CFS)ユーザー時間とSCHED_RRとSCHED_FIFOのユーザー時間

私が使用しているデータは、多数のCPU実行プロセスが同時に実行されているため、データはかなり正確でなければなりません。ありがとう。

答えて

0

CPUバインドSCHED_FIFOリアルタイムプロセスは、他のプロセスに非同期読み取りを開始する機会を与えないことが考えられます。 SCHED_OTHERを使用すると、より多くのプロセスで非同期読み取りが開始されるため、データを待機する合計時間が短くなります。

+0

OK、私たちはSCHED_OTHERがおそらくフードの中で何らかの機会最適化を行っていると思っていましたが、このものに関するドキュメントを見つけるのは難しいでしょう。情報をありがとう。 –

0

これは、キャッシング効果(これは、このようなパフォーマンス比較で定期的に発生する)によるものです。

すべてのコンテキストスイッチは、スワップインされたプロセス(およびカーネル)がキャッシュ行の一部をぶち壊すので、キャッシュのチャンクを失います。

関連する問題