2009-10-21 3 views
18

Какие алгоритмы планирования используют ядро ​​Linux?Какие алгоритмы планирования используют ядро ​​Linux?

Где я могу получить дополнительную информацию о ядре Linux? (Начальный курс OS ... студент)

+0

Вы имеете в виду «алгоритм планирования, который использует ядро ​​Linux»? –

+0

мм, может быть, мой английский не очень хорош. Я имею в виду FCFS, round robin или то, что использует ядро ​​linux для обработки процессов. – Nick

+0

Это немного старо, но попробуйте прочитать [эту страницу] (http://web.archive.org/web/20141016155917/http://oreilly.com/catalog/linuxkernel/chapter/ch10.html). (Это было ранее опубликовано как отдельный ответ, который получил 4 upvotes. К сожалению, кажется, что политика этого сайта в отношении таких полезных ответов, даже тех, которые помогли людям в течение _7 лет_, заключается в том, что они должны быть удалены ...) – user200783

ответ

1

Я считаю, что «полностью справедливый планировщик» используется с последними ядрами. Я думаю, вы можете получить хороший объем информации, если вы просто ищете его в Google.

ссылка: http://en.wikipedia.org/wiki/Completely_Fair_Scheduler

7

Ядро Linux имеет несколько различных алгоритмов планирования доступны как для планирования процесса и для планирования ввода/вывода. Загрузите его с www.kernel.org и вызвать

make menuconfig 

вы получите полный список всех доступных опций с встроенной помощи. Один парень, который однажды придумал свой планировщик O (1), - Con Kolivas. Окончательно нужно взглянуть на то, что он сделал. Я когда-то был отличным прорывом.

+1

Это если вы можете указать категорию в menuconfig, что планировщики могут быть найдены. – recluze

0

Я думаю, что в ядре Linux есть несколько разных планировщиков, которые вы можете выбрать во время компиляции. Чтобы узнать больше о ядре Linux, вы можете загрузить исходный код ядра (или просмотреть его в Интернете) и посмотреть в каталоге документации. Например, может оказаться полезным подкаталог scheduler. Очевидно, вы можете просто взглянуть на код.

+0

Планировщик ввода-вывода имеет разные алгоритмы. Планировщик процессов этого не делает. –

2

Как уже упоминалось, существует несколько алгоритмов планирования в соответствии с предполагаемым использованием.

Отметьте this article, если вы хотите узнать больше о планировании в Linux.

0

Ядро Linux позволяет три различных алгоритмов планирования в основном

  1. кратчайшей работа первого
  2. раунда Robin Scheduling
  3. Приоритетный алгоритм приоритетного планирования.

Метод третьего планирования, который он отличается более низкой версии версий Linux, такие как 2,4

+2

Как это сделать SJF без знания длительности заданий перед рукой? – pinkpanther

+0

@pinkpanther Он наблюдает за своим прошлым поведением и перемещает их вверх и вниз в приоритетных очередях соответственно. –

5

Если вы просто хотите проверить, что планировщик система 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

Интервью с создателем (Йенс Аксбо):

http://kerneltrap.org/node/7637

Смежные вопросы