何らかの理由で、私は10のプロセスが好みを通して同じCPUコアを共有したいと思います。
ご存知のように、プロセス間のCPU共有を実現するには、Linuxラウンドロビン(RR)スケジューリングポリシーを利用できます。
Linuxカーネル3.9以降では、ファイルを変更してRRスケジューリング間隔を設定できます/proc/sys/kernle/sched_rr_timeslice_ms
。デフォルトのRRスケジューリング間隔は100msです。
私の質問は次のとおりです
RRスケジューリング間隔を100μsに設定したいです。つまり、あるプロセスが100μsの間実行され、別のプロセスが実行されます。ただし、値を
/proc/sys/kernle/sched_rr_timeslice_ms
1ms未満に設定できませんでした。現在、Linuxカーネルでサポートされている最小RRスケジューリング間隔が1msかどうかを知りたいです。Windriver Linuxでサポートされている最小RRスケジューリング間隔が何であるかを知っている人はいますか? Windriver Linuxは組み込みシステムで広く使用されているため、オペレーティングシステムのリアルタイム要件が高くなります。
ミューテックスを使用して、10個のプロセスがすべて1ミリ秒以内に少なくとも1回実行されるようにできるかどうか疑問に思います。つまり、1つのプロセスは100μsの間実行され、次に他のプロセスがロックされ実行されるようにミューテックスのロックを解除します。このメカニズムは機能しますか?
上記の方法では、10個のプロセスを10個のスレッドに変更した場合はどうなりますか?効率的なスレッド切り替えメカニズムはありますか?