SCHED_DEADLINE — планировщик реального времени в ядре Linux[1][2].
Ядро Linux содержит несколько типов планировщиков задач[3]. По умолчанию ядро использует полностью равномерный планировщик задач (Completely Fair Scheduler, CFS), впервые появившийся в ядре с версии 2.6.23[4]. Этот планировщик по умолчанию известен так же как SCHED_NORMAL
, но ядро так же содержит два планировщика реального времени, именуемых как SCHED_FIFO
(realtime first-in-first-out) и SCHED_RR
(realtime round-robin), каждый из которых имеет приоритет над планировщиком по умолчанию[3].
Планировщик SCHED_DEADLINE
, реализующий алгоритм планирования по ближайшему сроку завершения (EDF), был добавлен в ядро Linux, начиная с версии 3.14, выпущенной 30 марта 2014[5][6].
История
Патч периодически передавался сообществу разработчиков ядра через рассылку Linux kernel mailing list. Каждый выпуск приводился в соответствие с последней версией ядра и учитывал замечания к предыдущему выпуску.
По мере повышения популярности планировщика к разработке подключилось большее число разработчиков ядра.
Первоначально проект назывался SCHED_EDF
и был представлен сообществу разработчиков ядра Linux в 2009[7]. Под этим именем он через несколько недель был представлен Real-Time Linux Workshop[8]. Название было заменено на SCHED_DEADLINE по запросу сообщества разработчиков ядра Linux[9].
За прошедшие годы были выпущены следующие версии:
- Первая версия планировщика была выпущена 22 сентября 2009 под именем
SCHED_EDF
[7].
- Первая версия планировщика после изменения имени на
SCHED_DEADLINE
была представлена LKML 16 октября 2009[10].
- Вторая версия планировщика была представлена LKML 28 февраля 2010, и содержала первый вариант Deadline Inheritance protocol[11].
- Третья версия планировщика была отправлена в LKML 29 октября 2010. В неё был добавлена поддержка global/clustered multiprocessor scheduling через dynamic task migrations[12].
- Четвёртая версия планировщика была отправлена в LKML 6 апреля 2012, и имела лучшую поддержку rq selection для dynamic task migration и лучшую интеграцию с PREEMPT_RT[13].
- Пятая версия планировщика была отправлена в LKML 23 мая 2012[14].
- Шестая версия планировщика была отправлена в LKML 24 октября 2012[15].
- Седьмая версия планировщика была отправлена в LKML 11 февраля 2013[16]. Разрешение планирования было ограничено до микросекунд (во избежание переполнения), был убран тег RFC.
- Восьмая версия планировщика была послана в LKML 14 октября 2013[17].
- Девятая версия планировщика была послана в LKML 7 ноября 2013[18].
- Последняя версия была принята в основное ядро Linux (номер commit a0fa1dd3cdbccec9597fe53b6177a9aa6e20f2f8[19]), и с этих пор стала частью ядра.
Статьи на сайтах Linux Weekly News[20] и Phoronix[21] утверждают, что SCHED_DEADLINE
могли попасть в основное ядро in the very next releases.
В итоге, после четырёх лет и девяти выпусков патч был принят и включен в основное ядро версии 3.14[5][6].
Прочая информация
Проект имеет официальную интернет-страницу[22]. Исходный код доступен публично через GitHub[23],, заменив прежний репозиторий на Gitorious[24].
На Linux Weekly News[1][25], Slashdot[26], OSNews[2][27] и LinuxToday[28] появилось несколько посвященных планировщику статей. Также имеется видеозапись, выложенная на YouTube[29].
SCHED_DEADLINE
был так же интегрирована в проект Yocto[17].
Так же был проявлен интерес по включению его в проект Linaro[30].
Примечания
- 1 2 Linux Weekly News, Deadline scheduling for Linux
- 1 2 OSNews, Deadline Scheduling in the Linux Kernel
- 1 2 Bar, Moshe The Linux Scheduler (неопр.). Linux Journal. Проверено 14 апреля 2012.
- ↑ Molnár, Ingo [patch] Modular Scheduler Core and Completely Fair Scheduler [CFS] (неопр.). Список рассылки linux-kernel (13 апреля 2007).
- 1 2 1.1. Deadline scheduling class for better real-time scheduling (неопр.). Linux kernel 3.14. kernelnewbies.org (30 марта 2014). Проверено 2 апреля 2014.
- 1 2 Phoronix, The Linux 3.14 Kernel Already Has Many Exciting Features
- 1 2 Первый выпуск SCHED_DEADLINE (еще названный SCHED_EDF)
- ↑ 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_EDF на SCHED_DEADLINE
- ↑ First version of SCHED_DEADLINE
- ↑ Second version of SCHED_DEADLINE
- ↑ Third version of SCHED_DEADLINE
- ↑ Fourth version of SCHED_DEADLINE
- ↑ Fifth version of SCHED_DEADLINE
- ↑ Sixth version of SCHED_DEADLINE
- ↑ Seventh version of SCHED_DEADLINE
- 1 2 Eighth version of SCHED_DEADLINE
- ↑ Ninth version of SCHED_DEADLINE
- ↑ Commit merging SCHED_DEADLINE in the mainline kernel
- ↑ J. Corbet, Deadline scheduling: coming soon?, Linux Weekly News
- ↑ Phoronix, SCHED_DEADLINE To Be Added To Linux 3.14
- ↑ Official webpage of SCHED_DEADLINE project
- ↑ New GitHub public repository
- ↑ Previous Gitorious repository
- ↑ Linux Weekly News, Adding periods to SCHED_DEADLINE
- ↑ Slashdot, Deadline Scheduling Proposed For the Linux Kernel
- ↑ OSNews, New Version of SCHED_DEADLINE for Linux Available
- ↑ LinuxToday, Adding periods to SCHED_DEADLINE
- ↑ SCHED_DEADLINE video on YouTube
- ↑ SCHED_DEADLINE on Linaro
|
---|
Общее | | |
---|
Распространение | |
---|
Приложения | |
---|
Персоналии | |
---|
СМИ | |
---|
Списки | |
---|
Мобильность | |
---|
Прочее | |
---|
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .