web-dev-qa-db-ja.com

Linuxカーネルはどのスケジューリングアルゴリズムを使用しますか?

Linuxカーネルはどのスケジューリングアルゴリズムを使用しますか?

Linuxのカーネルに関する詳細情報はどこで入手できますか? (OSファーストコース...学生レベル)

19
Nick

Linuxカーネルには、プロセススケジューリングとI/Oスケジューリングの両方に使用できるいくつかの異なるスケジューリングアルゴリズムがあります。 www.kernel.org からダウンロードして、

make menuconfig

組み込みのヘルプを使用して、使用可能なすべてのオプションの完全なリストを取得できます。かつて彼のO(1)スケジューラーを思いついた人は Con Kolivas です。間違いなく彼が何をしたかを見る必要があります。私はかつて素晴らしい休憩でした-使って。

7
jdehaan

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)へのインタビュー:

http://kerneltrap.org/node/7637

5
user2220771

他の人がすでに述べたように、使用目的に応じて、利用可能ないくつかのスケジューリングアルゴリズムがあります。

Linuxでのスケジューリングについて詳しく知りたい場合は、 この記事 を確認してください。

2
Anax

「Completelyfairscheduler」は最新のカーネルで使用されていると思います。グーグルで検索すれば、かなりの量の情報が得られると思います。

リンク: http://en.wikipedia.org/wiki/Completely_Fair_Scheduler

1
Sabeen Malik

Linuxカーネルに新たに追加されたのは、リアルタイムサポートを保証するEDF(Earliest Deadline First)です http://lkml.org/lkml/2009/9/22/186http:// www .evidence.eu.com/content/view/313/390 /

1
subbul

Linuxカーネルには、実際にはコンパイル時に選択できるいくつかの異なるスケジューラーがあると思います。 Linuxカーネルの詳細については、カーネルのソースコードをダウンロードして(またはオンラインで参照して)、Documentationディレクトリを参照してください。たとえば、 scheduler サブディレクトリが役立つ場合があります。もちろん、コード自体を見るだけでもかまいません。

0
wdebeaum

Linuxカーネルでは、主に3つの異なるスケジューリングアルゴリズムが可能です。

  1. 最短ジョブ優先
  2. ラウンドロビンスケジューリング
  3. 優先度ベースのプリエンプティブスケジューリングアルゴリズム。

2.4などのLinuxバージョンの下位バージョンとは異なる3番目のスケジューリング方法

0
chandra

最新のGNU/Linuxディストリビューションは、CFS(Completely Fair Scheduler)を使用しています。これについては、この本の第4章で詳しく読むことができます。 RobertLoveによるLinuxKernel Development 3rd Edition

そこには多くの興味深く理解しやすい説明があります。とても楽しかったです。

0