0

プロセスをプリエンプタブルにしようとしています。スケジューラ ポリシーを に変更し、 99SCHED_FIFOに設定しrtprioました。IO 割り込みがない場合、プロセスが開始されるとすぐに、プロセスが他のプロセスによってプリエンプトされないという保証はありますか? rtprio=99 が最高の優先度ですか、それともより優先度の高いカーネルのプロセスがまだありますか? 最後に、プロセスが実行中にプリエンプトされたかどうかを知るにはどうすればよいでしょうか?

4

1 に答える 1

0

他のプロセスが最高の rt プロセスをプリエンプトできます。例として、stop_machine()ホットリムーブ CPU 用に作成されたプロセス、カーネル コード テキストの変更などがあります。

/proc/$PID/sched から情報を取得して、プロセスがプリエンプトされたかどうかを判断できます。cat /proc/$PID/sched

nr_switches                        :                 4197
nr_voluntary_switches              :                 4140
nr_involuntary_switches            :                   57

が変更された場合nr_switches、プロセスは横取りされています

于 2012-07-13T07:36:06.563 に答える