Linux カーネルにはいくつの異なるアルゴリズムが実装されていますか? FIFO と Round Robin だけですか、それとも他のものはありますか?
このトピックに関する優れたドキュメントはどこにありますか?
これらのアルゴリズム mysref を実装したい場合、どこから始めればよいでしょうか?
Linux カーネルにはいくつの異なるアルゴリズムが実装されていますか? FIFO と Round Robin だけですか、それとも他のものはありますか?
このトピックに関する優れたドキュメントはどこにありますか?
これらのアルゴリズム mysref を実装したい場合、どこから始めればよいでしょうか?
リアルタイムスケジューラに関しては、LinuxはFIFOとラウンドロビン(POSIXSCHED_FIFO
とSCHED_RR
)を提供します。Completely Fair Scheduler(CFS)と呼ばれるタイムシェアリングスケジューラもあります。これは、複数のスケジューラ(つまり、マルチコア、およびさまざまな負荷に対するプリエンプションのいくつかのスタイル/フレーバー)と呼ぶことができるほど複雑です。CFSについては、カーネルのドキュメント( sched-design-CFS )で詳しく説明されていますが、関連するソースを注意深く読むことをお勧めします。CFSは、LinuxによるPOSIXのSCHED_OTHER
ポリシーの実装です。
さらに、新しいリアルタイムのEarliest Deadline First(EDF)スケジューラなどの他のスケジューリングポリシーを追加するパッチがあります。
このトピックに関する多くの本は別として、その多くは発行時にすぐに古くなっていますが、ここまたはカーネルツリーのdocs/schedulerでカーネルのドキュメントを参照できます。トピックに関する議論のためにLKMLアーカイブを熟読することも有用です。
始めたばかりの場合、またはより広範囲のリアルタイムスケジューラを試してみたい場合は、UNCのLITMUS-RTフレームワークを検討してください。