Linux SCHED OTHER, SCHED FIFO и SCHED RR-различия

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

спасибо

1 ответов


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

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

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

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

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