Первое планирование на самый ранний срок - Earliest deadline first scheduling

Самый ранний крайний срок сначала (EDF) или же минимум времени идти это динамический приоритет алгоритм планирования используется в операционные системы реального времени разместить процессы в приоритетная очередь. Каждый раз, когда происходит событие планирования (завершение задачи, выпуск новой задачи и т. Д.), В очереди будет производиться поиск процесса, ближайшего к ее крайнему сроку. Этот процесс будет следующим, который планируется выполнить.

EDF - это оптимальный алгоритм планирования на вытесняющих однопроцессорных процессорах в следующем смысле: если набор независимых рабочие места каждый из которых характеризуется временем прибытия, требованием выполнения и крайним сроком, может быть запланирован (любым алгоритмом) таким образом, чтобы гарантировать выполнение всех заданий к их крайнему сроку, EDF запланирует эту коллекцию заданий, чтобы все они были выполнены в срок.

При планировании периодических процессов, сроки которых равны их периодам, EDF имеет предел использования 100%. Таким образом тест на возможность планирования за EDF является:

где время вычисления наихудшего случая процессы и - их соответствующие периоды между прибытием (предполагается, что они равны относительным срокам).[1]

То есть EDF может гарантировать соблюдение всех сроков при условии, что общая ЦПУ загрузка не более 100%. По сравнению с методами планирования с фиксированным приоритетом, такими как тарифно-монотонное планирование, EDF может гарантировать все сроки в системе при более высокой загрузке.

EDF также оптимальный алгоритм планирования на однопроцессорных процессорах без вытеснения, но только среди класса алгоритмов планирования, которые не допускают вставленное время простоя. При планировании периодических процессов, сроки которых равны их периодам, достаточный (но не необходимый) тест на возможность планирования для EDF становится:[2]

Где п представляет собой штраф за невыполнение приоритета, определяемый Максимум / мин . Если этот коэффициент можно сохранить небольшим, без упреждения EDF может быть полезным, так как имеет низкие накладные расходы на реализацию.

Однако, когда система перегружена, набор процессов, которые не соблюдают крайние сроки, в значительной степени непредсказуем (это будет функцией точных крайних сроков и времени, когда произойдет перегрузка). Это значительный недостаток для разработчика систем реального времени. Алгоритм также сложно реализовать в аппаратное обеспечение и есть сложная проблема представления крайних сроков в разных диапазонах (крайние сроки не могут быть более точными, чем детализация часов, используемых для планирования). Если модульная арифметика используется для расчета будущих крайних сроков относительно текущего момента, поле, в котором хранится будущий относительный крайний срок, должно содержать, по крайней мере, значение (("продолжительность" {наибольшего ожидаемого времени до завершения} * 2) + "сейчас" ). Следовательно EDF не часто встречается в промышленных компьютерных системах реального времени.

Вместо этого большинство компьютерных систем реального времени используют планирование с фиксированным приоритетом (обычно тарифно-монотонное планирование ). При фиксированных приоритетах легко предсказать, что в условиях перегрузки низкоприоритетные процессы пропустят крайние сроки, в то время как процесс с наивысшим приоритетом все равно уложится в установленные сроки.

Существует значительный объем исследований, посвященных EDF планирование в вычисления в реальном времени; можно рассчитать наихудшее время реакции процессов в EDF, чтобы иметь дело с другими типами процессов, кроме периодических, и использовать серверы для регулирования перегрузок.

Пример

Рассмотрим 3 периодических процесса, запланированных на вытесняющем однопроцессоре. Время выполнения и периоды показаны в следующей таблице:

Данные о времени обработки
ПроцессВремя исполненияПериод
P118
P225
P3410

В этом примере единицы времени можно рассматривать как планируемые. временные отрезки. Сроки заключаются в том, что каждый периодический процесс должен завершиться в течение своего периода.

Временная диаграмма

Временная диаграмма показывая часть одного из возможных расписаний для примера.

На временной диаграмме столбцы представляют временные отрезки с увеличением времени вправо, и все процессы начинают свои периоды с временного отрезка 0. Чередование синего и белого оттенков на временной диаграмме указывает периоды каждого процесса с крайними сроками при изменении цвета.

Первым процессом, запланированным EDF, является P2, потому что у него самый короткий период и, следовательно, у него самый ранний крайний срок. Аналогичным образом, когда P2 завершается, планируется P1, а затем P3.

Во временном интервале 5 и P2, и P3 имеют одинаковый крайний срок, и их необходимо завершить до временного интервала 10, поэтому EDF может запланировать любой из них.

Утилизация

Утилизация будет:

Поскольку наименьший общий множитель периодов составляет 40, шаблон планирования может повторяться каждые 40 временных интервалов. Но только 37 из этих 40 временных интервалов используются P1, P2 или P3. Поскольку коэффициент использования 92,5% не превышает 100%, система может быть запланирована с помощью EDF.

Крайний срок обмена

При планировании EDF могут возникнуть нежелательные смены крайних сроков. Процесс может использовать общий ресурс внутри критическая секция, чтобы предотвратить его упреждающее сокращение в пользу другого процесса с более ранним сроком. Если это так, то для планировщика становится важным назначить запущенному процессу самый ранний крайний срок среди других процессов, ожидающих ресурс. В противном случае процессы с более ранними сроками могут их пропустить.

Это особенно важно, если у процесса, выполняющего критическую секцию, гораздо больше времени для завершения и выхода из критической секции, что приведет к задержке освобождения общего ресурса. Но процесс все же может быть упрежден в пользу других, у которых более ранние сроки выполнения, но которые не разделяют критический ресурс. Эта опасность смены крайнего срока аналогична инверсия приоритета когда используешь упреждающее планирование с фиксированным приоритетом.

Чтобы ускорить поиск крайнего срока в очереди готовности, записи очереди сортируются в соответствии с их крайними сроками. Когда новому процессу или периодическому процессу назначается новый крайний срок, он вставляется перед первым процессом с более поздним сроком. Таким образом, процессы с самыми ранними крайними сроками всегда находятся в начале очереди.

Анализ интенсивного трафика для очередей EDF с отказом

При интенсивном анализе поведения односерверной очереди под Политика планирования самого раннего крайнего срока (EDF) с отказом, процессы имеют крайние сроки и обслуживаются только до истечения их сроков. Доля «не выполненной работы», определяемая как остаточная работа, не обслуживаемая из-за истекших сроков, является важным показателем эффективности.

Сравнение с планировщиками с фиксированным приоритетом

Принято считать, что реализация Упреждающее планирование с фиксированным приоритетом (FPS) проще, чем динамический планировщик приоритетов, такой как EDF. Однако при сравнении максимального использования оптимального планирования с фиксированным приоритетом (с приоритетом каждого потока, заданным Скоростно-монотонное планирование ) EDF может достигать 100%, в то время как теоретическое максимальное значение для Скоростно-монотонное планирование составляет около 69%.

Обратите внимание, что EDF не делает никаких конкретных предположений о периодичности выполнения задач; следовательно, его можно использовать для планирования периодических, а также апериодических задач.[3]

Ядра, реализующие планирование EDF

Хотя реализации EDF не распространены в коммерческих ядрах реального времени, вот несколько ссылок на ядра с открытым исходным кодом и ядра реального времени, реализующие EDF:

  • АКУЛА ОСРВ SHaRK, реализующая различные версии алгоритмов планирования EDF и резервирования ресурсов.
  • ЭРИКА Предприятие ERIKA Enterprise, которая обеспечивает реализацию EDF, оптимизированную для небольших микроконтроллеров, с API, аналогичным API ОСЭК API.
  • Ядро обывателя Ядро Everyman реализует планирование EDF или Deadline Monotonic в зависимости от конфигурации пользователя.
  • ОС MaRTE ОС MaRTE выступает в качестве среды выполнения для приложений Ada и реализует широкий спектр алгоритмов планирования, включая EDF.
  • В AQuoSA Проект представляет собой модификацию ядра Linux, обогащая планировщик процессов возможностями планирования EDF. Время планирования не может быть таким точным, как в случае вышеупомянутых операционных систем жесткого реального времени, но оно достаточно точное, чтобы значительно улучшить предсказуемость и, таким образом, выполнить требования реального времени мультимедийных приложений. AQuoSA - один из немногих проектов, который обеспечивает возможности планирования в реальном времени для непривилегированных пользователей в системе контролируемым образом с помощью правильно разработанной модели управления доступом.[4]
  • В Ядро Linux имеет самый ранний крайний срок первой реализации, названный СРОК РАСПИСАНИЯ который доступен с версии 3.14.
  • В планировщик в реальном времени разработан в контексте ИРМОС European Project - это многопроцессорный планировщик реального времени для ядра Linux, особенно подходящий для временной изоляции и предоставления гарантий QoS для сложных многопоточных программных компонентов, а также для всего виртуальные машины. Например, при использовании Linux в качестве ОС хоста и KVM в качестве гипервизора IRMOS можно использовать для обеспечения гарантий планирования для отдельных виртуальных машин и в то же время изолировать их производительность чтобы избежать нежелательных временных помех. IRMOS имеет комбинированный EDF / FP иерархический планировщик. На внешнем уровне есть распределенный планировщик EDF на доступных ЦП. Однако резервирования являются многопроцессорными, и глобальная FP на многопроцессорных системах используется на внутреннем уровне для планирования потоков (и / или процессов), прикрепленных к каждому внешнему резервированию EDF. Смотрите также эта статья на lwn.net для общего обзора и краткого руководства по предмету.
  • В Xen уже некоторое время есть планировщик EDF. В страница руководства содержит краткое описание.
  • В ОС Plan 9 от Bell Labs включает EDFI, «облегченный протокол планирования в реальном времени, который сочетает EDF с наследованием крайнего срока по совместно используемым ресурсам».[5]
  • RTEMS: Планировщик EDF будет доступен в версии 4.11. RTEMS SuperCore
  • Лакмус-РТ представляет собой расширение ядра Linux в реальном времени с упором на многопроцессорное планирование и синхронизацию в реальном времени. Его набор алгоритмов реального времени включает планировщики Partitioned-EDF, Global-EDF и Clustered-EDF.

Смотрите также

Рекомендации

  1. ^ Буттаццо, Джорджио (2011), Вычислительные системы жесткого реального времени: алгоритмы и приложения предсказуемого планирования (Третье изд.), Нью-Йорк, Нью-Йорк: Springer, стр. 100, ISBN  9781461406761
  2. ^ Коротко, Майкл (2011). «Улучшенный анализ возможности планирования неявных задач крайнего срока при ограниченном планировании EDF с приоритетом». 2011 Международная конференция IEEE по новейшим технологиям и автоматизации производства.
  3. ^ Буттаццо, Джорджио (2011), Вычислительные системы жесткого реального времени: алгоритмы и приложения предсказуемого планирования (Третье изд.), Нью-Йорк, Нью-Йорк: Springer, стр. 100, ISBN  9781461406761
  4. ^ Кучинотта, Томмазо (2008). «Контроль доступа для адаптивного бронирования в многопользовательских системах». Симпозиум IEEE Real-Time и встроенных технологий и приложений, 2008 г.. С. 387–396. Дои:10.1109 / RTAS.2008.16. ISBN  978-0-7695-3146-5.
  5. ^ Пьер Дж. Янсен, Сапе Дж. Маллендер, Пол Дж. М. Хавинга, Ганс Шолтен. Упрощенное планирование EDF с наследованием крайнего срока