SCHED_DEADLINE — планировщик реального времени в ядре Linux Linux Weekly News, Deadline scheduling for Linux OSNews, Deadline Scheduling in the Linux Kernel, реализует алгоритм планирования по ближайшему сроку завершения (EDF), был добавлен в ядро Linux, начиная с версии 3.14, выпущенной 30 марта 2014 Phoronix, The Linux 3.14 Kernel Already Has Many Exciting Features.
Ядро Linux содержит несколько типов планировщиков задач. По умолчанию ядро использует полностью справедливый планировщик задач (), впервые появившийся в ядре с версии 2.6.23. Этот планировщик по умолчанию известен так же как SCHED_NORMAL, но ядро так же содержит два планировщика реального времени, именуемых как SCHED_FIFO (realtime first-in-first-out) и SCHED_RR (realtime round-robin), каждый из которых имеет приоритет над планировщиком по умолчанию.
История
Патч периодически передавался сообществу разработчиков ядра через рассылку Linux kernel mailing list. Каждый выпуск приводился в соответствие с последней версией ядра и учитывал замечания к предыдущему выпуску. По мере повышения популярности планировщика к разработке подключилось большее число разработчиков ядра.
Первоначально проект назывался SCHED_EDF и был представлен сообществу разработчиков ядра Linux в 2009 Первый выпуск SCHED_DEADLINE (еще названный SCHED_EDF). Под этим именем он через несколько недель был представлен Real-Time Linux Workshop Dario Faggioli, Fabio Checconi, Michael Trimarchi, Claudio Scordino, An EDF scheduling class for the Linux kernel, 11th Real-Time Linux Workshop (RTLW), Dresden, Germany, September 2009.. Название было заменено на SCHED_DEADLINE по запросу сообщества разработчиков ядра Linux Запрос на изменение имени с SCHED_EDF на SCHED_DEADLINE.
За прошедшие годы были выпущены следующие версии планировщика:
Первая версия выпущена 22 сентября 2009 под именем SCHED_EDF. Первая версия после изменения имени на SCHED_DEADLINE была представлена LKML 16 октября 2009 First version of SCHED_DEADLINE. Вторая версия представлена LKML 28 февраля 2010, и содержала первый вариант Deadline Inheritance protocol Second version of SCHED_DEADLINE. Третья версия отправлена в LKML 29 октября 2010. В неё была добавлена поддержка global/clustered multiprocessor scheduling через dynamic task migrations Third version of SCHED_DEADLINE. Четвёртая версия отправлена в LKML 6 апреля 2012, и имела лучшую поддержку rq selection для dynamic task migration и лучшую интеграцию с PREEMPT_RT Fourth version of SCHED_DEADLINE. Пятая версия отправлена в LKML 23 мая 2012 Fifth version of SCHED_DEADLINE. Шестая версия отправлена в LKML 24 октября 2012 Sixth version of SCHED_DEADLINE. Седьмая версия отправлена в LKML 11 февраля 2013 Seventh version of SCHED_DEADLINE. Разрешение планирования было ограничено до микросекунд (во избежание переполнения), был убран тег RFC. Восьмая версия послана в LKML 14 октября 2013 Eighth version of SCHED_DEADLINE. Девятая версия послана в LKML 7 ноября 2013 Ninth version of SCHED_DEADLINE. Последняя версия принята в основное ядро Linux (номер commit a0fa1dd3cdbccec9597fe53b6177a9aa6e20f2f8 Commit merging SCHED_DEADLINE in the mainline kernel), и с этих пор стала частью ядра.
В статьях на сайтах Linux Weekly News и Phoronix Phoronix, SCHED_DEADLINE To Be Added To Linux 3.14 утверждалось, что SCHED_DEADLINE могут попасть в основное ядро в самых ближайших релизах. В итоге, после четырёх лет и девяти выпусков патч был принят и включен в основное ядро версии 3.14.
Прочая информация Проект имеет официальную интернет-страницу Official webpage of SCHED_DEADLINE project. Исходный код доступен публично через GitHub New GitHub public repository, заменив прежний репозиторий на Gitorious Previous Gitorious repository.
На Linux Weekly News Linux Weekly News, Adding periods to SCHED_DEADLINE, Slashdot Slashdot, Deadline Scheduling Proposed For the Linux Kernel, OSNews OSNews, New Version of SCHED_DEADLINE for Linux Available и LinuxToday LinuxToday, Adding periods to SCHED_DEADLINE появилось несколько посвященных планировщику статей. Также имеется видеозапись, выложенная на YouTube SCHED_DEADLINE video on YouTube.
SCHED_DEADLINE был так же интегрирована в проект Yocto. Так же был проявлен интерес по включению его в проект Linaro SCHED_DEADLINE on Linaro.
Примечания
Категория:Ядро Linux