Linuxカーネルはどのスケジューリングアルゴリズムを使用しますか?
Linuxのカーネルに関する詳細情報はどこで入手できますか? (OSファーストコース...学生レベル)
Linuxカーネルには、プロセススケジューリングとI/Oスケジューリングの両方に使用できるいくつかの異なるスケジューリングアルゴリズムがあります。 www.kernel.org からダウンロードして、
make menuconfig
組み込みのヘルプを使用して、使用可能なすべてのオプションの完全なリストを取得できます。かつて彼のO(1)スケジューラーを思いついた人は Con Kolivas です。間違いなく彼が何をしたかを見る必要があります。私はかつて素晴らしい休憩でした-使って。
Linuxシステムが使用しているスケジューラーと使用可能なスケジューラーを確認したいだけの場合は、次のコマンドを実行できます。
cat /sys/block/sda/queue/scheduler
[]の間にあるものは、現在使用しているものです。他のものが利用可能です。変更するには:
Sudo bash -c 'echo deadline > /sys/block/sda/queue/scheduler'
ただし、自分が何をしていて欲しいのかがわからない場合は、デフォルトに戻すように注意してください。
デフォルト(少なくとも新しいUbuntuディストリビューションでは)はCFQ(Completely Fair Scheduling)です:
http://en.wikipedia.org/wiki/CFQ
作成者(Jens Axboe)へのインタビュー:
他の人がすでに述べたように、使用目的に応じて、利用可能ないくつかのスケジューリングアルゴリズムがあります。
Linuxでのスケジューリングについて詳しく知りたい場合は、 この記事 を確認してください。
「Completelyfairscheduler」は最新のカーネルで使用されていると思います。グーグルで検索すれば、かなりの量の情報が得られると思います。
Linuxカーネルに新たに追加されたのは、リアルタイムサポートを保証するEDF(Earliest Deadline First)です http://lkml.org/lkml/2009/9/22/186http:// www .evidence.eu.com/content/view/313/390 /
Linuxカーネルには、実際にはコンパイル時に選択できるいくつかの異なるスケジューラーがあると思います。 Linuxカーネルの詳細については、カーネルのソースコードをダウンロードして(またはオンラインで参照して)、Documentationディレクトリを参照してください。たとえば、 scheduler サブディレクトリが役立つ場合があります。もちろん、コード自体を見るだけでもかまいません。
Linuxカーネルでは、主に3つの異なるスケジューリングアルゴリズムが可能です。
2.4などのLinuxバージョンの下位バージョンとは異なる3番目のスケジューリング方法
最新のGNU/Linuxディストリビューションは、CFS(Completely Fair Scheduler)を使用しています。これについては、この本の第4章で詳しく読むことができます。 RobertLoveによるLinuxKernel Development 3rd Edition
そこには多くの興味深く理解しやすい説明があります。とても楽しかったです。