2012-05-15 5 views
4

Сколько различных алгоритмов реализовано в ядре linux? Есть ли только FIFO и Round Robin, или есть другие?Алгоритмы планирования в ядре linux

Где я могу найти хорошую документацию по этой теме?

Скажем, если бы я хотел реализовать эти алгоритмы myslef, с чего мне начать?

+0

лучший способ изучить его: прочитать коды ядра. – iyasar

ответ

8

С точки зрения планировщиков реального времени, Linux предоставляет FIFO и Round-Robin (POSIX SCHED_FIFO и SCHED_RR). Существует также планировщик с распределением времени, называемый Completely Fair Scheduler (CFS), который достаточно сложный, чтобы вы могли назвать его несколькими планировщиками (то есть многоядерными и несколькими стилями/ароматами preemption для разных нагрузок). CFS подробно описывается в документации ядра (sched-design-CFS), но рекомендуется внимательно прочитать соответствующие источники. CFS - это реализация linux политики POSIX SCHED_OTHER.

Кроме того, есть патчи, которые добавляют другие политики планирования, такие как a new real-time Earliest Deadline First (EDF) scheduler.

Помимо ряда книг по этой теме, многие из которых сразу же устарели во время публикации, вы можете обратиться к kernel documentation here или в свое дерево ядра в разделе docs/scheduler. Также полезно ознакомиться с LKML archives for discussion on the topic.

Если вы только начинаете или хотите играть с более широким диапазоном планировщиков реального времени, вы можете рассмотреть LITMUS-RT framework UNC.

+0

Книги - предварительно напечатанные веб-страницы. Вы должны смеяться :-) –

+1

@BlankXavier: Особенно иронично в теме «в реальном времени». – andersoj