4

Linux カーネルにはいくつの異なるアルゴリズムが実装されていますか? FIFO と Round Robin だけですか、それとも他のものはありますか?

このトピックに関する優れたドキュメントはどこにありますか?

これらのアルゴリズム mysref を実装したい場合、どこから始めればよいでしょうか?

4

1 に答える 1

8

リアルタイムスケジューラに関しては、LinuxはFIFOとラウンドロビン(POSIXSCHED_FIFOSCHED_RR)を提供します。Completely Fair Scheduler(CFS)と呼ばれるタイムシェアリングスケジューラもあります。これは、複数のスケジューラ(つまり、マルチコア、およびさまざまな負荷に対するプリエンプションのいくつかのスタイル/フレーバー)と呼ぶことができるほど複雑です。CFSについては、カーネルのドキュメント( sched-design-CFS )で詳しく説明されていますが、関連するソースを注意深く読むことをお勧めします。CFSは、LinuxによるPOSIXのSCHED_OTHERポリシーの実装です。

さらに、新しいリアルタイムのEarliest Deadline First(EDF)スケジューラなどの他のスケジューリングポリシーを追加するパッチがあります。

このトピックに関する多くの本は別として、その多くは発行時にすぐに古くなっていますが、ここまたはカーネルツリーのdocs/schedulerでカーネルのドキュメントを参照できます。トピックに関する議論のためにLKMLアーカイブを熟読することも有用です。

始めたばかりの場合、またはより広範囲のリアルタイムスケジューラを試してみたい場合は、UNCのLITMUS-RTフレームワークを検討してください。

于 2012-05-15T11:16:45.053 に答える