С точки зрения планировщиков реального времени, 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.
лучший способ изучить его: прочитать коды ядра. – iyasar