0

マルチコア マシンの特定のコアに手動でスレッドを割り当てる方法を調べたいと思いました。include/sched.h は、こ​​れに役立ついくつかのマクロと関数 (sched_setaffinity など) を定義していることがわかりました。ただし、関数は外部化されており、それらの定義が見つかりません。それらの機能はどこかに実装されていますか? はいの場合、デフォルトの実装をオーバーライドすることはどこで可能ですか? いいえの場合、どのように実装できますか?

また、新しい実装を追加すると、Linux カーネルを再コンパイルする必要がありますか?

4

2 に答える 2

0

独自の CPU スケジューラを実装する方法を示すBFSのコードを確認してください。

//edit ye​​s 新しいスケジューラ impl を追加すると、カーネルを再コンパイルする必要がありますがqemu -kernel /path/to/new/kerenl -initrd something、実際のマシンでテストする前にコードがすぐにクラッシュしないことを確認するためにいつでもテストできます。

于 2010-12-14T19:22:13.370 に答える
0

sched_setaffinity のコードはカーネルにあります。ヘッダーファイルはそれを呼び出すためのプロトタイプを提供するだけで、それを満たすライブラリは呼び出しをシステムに転送するだけです。

于 2010-12-14T19:29:00.420 に答える