Linux SCHED_OTHER, SCHED_FIFO и SCHED_RR - различия - PullRequest
27 голосов
/ 22 февраля 2012

Может кто-нибудь объяснить разницу между SCHED_OTHER, SCHED_FIFO и SCHED_RR?

Спасибо

1 Ответ

46 голосов
/ 24 мая 2013

SCHED_FIFO и SCHED_RR - это так называемые политики в реальном времени.Они реализуют планирование в реальном времени с фиксированным приоритетом, определенное стандартом POSIX.Задачи с этими политиками вытесняют любую другую задачу, которая, таким образом, может легко перейти в состояние истощения (если они не освобождают ЦП).

Разница между SCHED_FIFO и SCHED_RR заключается в том, что среди задач с одинаковым приоритетом SCHED_RR выполняеткруговой прием с определенным временным интервалом;Вместо этого SCHED_FIFO требует, чтобы задача явно выдала процессор.

SCHED_OTHER - это общая политика планирования с разделением времени с циклическим перебором, которая планирует задачу для определенного временного интервала в зависимости от других задач, работающих в системе.

Обновление : начиная с Linux 3.14, существует дополнительная политика под названием SCHED_DEADLINE .Эта политика реализует алгоритм сервера постоянной пропускной способности (CBS) поверх ранних сроков ожидания Первые очередей.Каждой задаче в соответствии с этой политикой назначается крайний срок, и задача с самым ранним сроком выполняется.Лучшим ресурсом, описывающим этот алгоритм, является Планирование сроков в ядре Linux .

Обновление 2 : начиная с Linux 4.13, SCHED_DEADLINE заменил CBS на Greedy Reclamationалгоритма неиспользуемой полосы пропускания (GRUB) .

...