В ядро Linux может быть включен планировщик реального времени
На проходившей в сентябре конференции Real-Time Linux Workshop довольно энергично обсуждался 2 задача добавления в ядро Linux планировщика режима реального времени. Такая допустимость могла бы быть реализована с использованием уже отработанного в других RT-системах алгоритма приоритезации задач с более ранним временем завершения (EDF, Earliest Deadline First). В настоящее время для ядра Linux разработана экспериментальная версия планировщика EDF — SCHED_DEADLINE, которая раньше была известна как SCHED_EDF.
Необходимость планировщика реального времени в Linux
обусловлена теми ограничениями, которые привносят существующие алгоритмы диспетчеризации процессорного времени. Средь них можно выделить два основных:
* Существующие решения не способны гарантировать необходимое время выполнения запущенной задачи. Например, ежели условиями задано, что дополнение должно проделываться ровно 20 мсек в интервале 100 мсек, то имеющимися в ядре средствами этого добиться нельзя.
* Переключение между задачами осуществляется на не детерминистической основе и зависит от общего количества обслуживаемых процессов. Т.к. в ядре нет механизмов жесткой привязки времени начала выполнения задачи, она может выполняться с произвольной задержкой, или в случае возникшей ошибки приостановить действие следующей задачи.
Данное ограничения не позволяют использовать Linux в системах, где необходим дискретный контроль параметров или остальные функции, жестко привязанные ко времени. Более того, без RT-планировщика нельзя заранее предсказать поведение проектируемой системы. Все это негативно сказывается на проникновении Linux в сферу индустриальной электроники и промышленных систем автоматики.
Проект SCHED_DEADLINE, хотя все еще находится в экспериментальной фазе, уже может совершать типичные задачи полнофункциональной системы реального времени. Он является частью более глобального проекта ACTORS, финансируемого Европейской Комиссией.