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