Какие алгоритмы планирования использует ядро ​​Linux? - PullRequest
19 голосов
/ 22 октября 2009

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

Где я могу получить больше информации о ядре Linux? (Первый курс ОС ... уровень студента)

Ответы [ 8 ]

7 голосов
/ 22 октября 2009

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

make menuconfig

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

5 голосов
/ 03 июня 2013

Если вы просто хотите проверить, какой планировщик использует ваша Linux-система и какие доступны, вы можете выполнить следующую команду:

cat /sys/block/sda/queue/scheduler

Тот, который находится между [], тот, который он использует в данный момент. Другие доступны. Чтобы изменить это:

sudo bash -c 'echo deadline > /sys/block/sda/queue/scheduler'

Будьте осторожны, чтобы восстановить его по умолчанию, если только вы не знаете, что делаете и хотите.

По умолчанию (по крайней мере в более новых дистрибутивах Ubuntu) CFQ (Полностью честное планирование):

http://en.wikipedia.org/wiki/CFQ

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

http://kerneltrap.org/node/7637

2 голосов
/ 22 октября 2009

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

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

1 голос
/ 22 октября 2009

Новое дополнение к ядру Linux - EDF (Самый ранний срок сдачи - первый) для гарантированной поддержки RealTime http://lkml.org/lkml/2009/9/22/186 http://www.evidence.eu.com/content/view/313/390/

1 голос
/ 22 октября 2009

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

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

0 голосов
/ 24 апреля 2019

Современные дистрибутивы GNU / Linux используют CFS (полностью честный планировщик). Вы можете прочитать больше об этом в 4-й главе этой книги: Разработка ядра Linux, 3-е издание, Роберт Лав

Там вы найдете много интересных и понятных объяснений. Мне очень понравилось.

0 голосов
/ 26 октября 2010

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

  1. сначала самая короткая работа
  2. Круглое планирование Робина
  3. Алгоритм приоритетного планирования на основе приоритетов.

Третий метод планирования, который отличается от более низких версий версий Linux, таких как 2.4

0 голосов
/ 22 октября 2009

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

...