2012-02-17 8 views
0

組み込みプロジェクトで作業中。スケジューリングポリシーをSCHED_OTHERからSCHED_RRに変更する際に、タイマーの問題とストリームの読み込み遅延が発生しています。 SCHED_OTHERの間には届かず、SCHED_RR(ラウンドロビン)に到着する問題があります。スケジューリングポリシー

スケジューリングポリシーを変更する際にどのような影響がありますか。ポリシーの変更中に組み込みプロジェクトにカーネルモジュールを実装する際には、何が必要ですか?

答えて

0

SCHED_RRはタイムスライスであるため、プロセスがタイムスライス を完了すると、次のプロセスがオンになります。あなたのタイムスライスが十分に大きい場合、短いIOプロセス は、cpuタスクが完全なタイムスライスに対してCPUをブロックするため、CPUよりも不利になります。ただし、タイムスライスを減らすとコンテキスト切り替えが増えるため、この高い責任のためにパフォーマンスが低下します。私は優先度も提供します。

SCHED_OTHERはRRと似ていないため、静的な優先順位を提供しません。 プロセスは実行準備が整っているが、待ち行列には 待ち行列内にある場合に増加する動的優先度が1つあります。プロセスがアクティブになると、0にリセットされます。あなたはまたよろしく ケニー

組み込みシステムでI多用SCHED_OTHERとSCHED_FIFO

(19上のプロセスがいいですし、より頻繁に待つ)-20から19までの素敵なと動的な値をスケーリングすることができます
+0

入力を提供していただきありがとうございます。 – Gughan

+0

しかし、これについては、プロセスのタイムスライスをどのように減らすかについての時間スライスに関しては、そのためのPOSIX関数はありますか?また、SCHED_OTHERの場合、動的優先度はどのAPIに使用されるのですか? – Gughan

+0

nice値を変更するにはposix関数http://linux.die.net/man/2/nice動的値そのものを変えることはできません。 – phschoen