Альтернатива алгоритма EDF - PullRequest
4 голосов
/ 20 января 2011

Я хочу знать, доступны ли какие-либо альтернативы Самый ранний срок - первый (EDF) алгоритм планирования .Если да, пожалуйста, предоставьте ссылки.

Спасибо.

Ответы [ 2 ]

5 голосов
/ 24 февраля 2011

Планирование сроков может быть разделено на две категории: 1) по мнению компьютерного сообщества в реальном времени;и 2) как полагает сообщество теории расписаний.Категория 1 является подмножеством категории 2. Большинство практиков в области вычислений в реальном времени не знают о категории 2.

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

AFAIK, не существует существующих продуктов COTS операционной системы реального времени, которые реализуют планирование крайних сроков, особенно EDF.Несколько коммерческих продуктов были предприняты (например, DEC, IBM), но были заброшены из-за различных трудностей, таких как интеграция EDF с другими средствами управления ресурсами (например, синхронизаторами, незапланированными действиями) в ОС при сохранении обратной совместимостиРешение состоит в том, чтобы спланировать сроки исполнения (EDF и другие алгоритмы) как неотъемлемую часть ОС с нуля.Мне известны три продукта ОС реального времени COTS, которые сделали это, но ни один из них не вышел на рынок по организационным причинам, не связанным с ОС: DECs Libra, IBM OS / 2 для PowerPC (в сотрудничестве с DEC) иOSF-1 Mk7.3a от Open Software Foundation (в сотрудничестве с DEC и IBM).Некоторым исследовательским ОС, разработанным и внедренным с нуля, например, Альфа Дженсена в CMU, удалось внедрить планирование крайних сроков.Alpha воспользовалась преимуществом полной свободы, позволив подключать произвольные алгоритмы планирования, в том числе EDF и Utility Acrual.Другие исследовательские ОС стремились улучшить Linux (см. Проект VA Tech ChronOS, цитируемый постом Джонатана Андерсона).ChronOS ограничен тем, что основан на Linux, но также поддерживает алгоритмы планирования Utility Accrual.

Категория 2 охватывает всю тему планирования крайних сроков в целом, из которых категория 1 является более простым подмножеством.В частности, категория 2 признает понятия преждевременности и опоздания в отношении крайнего срока.Критерии оптимальности планирования включают минимизацию количества пропущенных сроков, минимизацию среднего опоздания, минимизацию максимального опоздания и многие (любые) другие.Технически, категория 2 минус подмножество категории 1 является «мягким» в реальном времени, хотя практики и даже исследователи в реальном времени используют много разных неточных и неточных описаний термина «мягкое» в реальном времени.это планирование категории 1. Однако оно более реалистично и более широко применимо, используется во многих отраслях (например, в сфере транспорта, производства и т. д.). Литература еще более обширная, чем для категории 1. Хороший учебник - это книга Пиндо Планирование: теория, алгоритмы и системы .

3 голосов
/ 24 февраля 2011

Стандартное ядро ​​Linux поддерживает только следующие политики планирования (для ЦП):

  • SCHED_FIFO - планирование приоритетов FIFO в реальном времени
  • SCHED_RR - циклическое планирование приоритетов в реальном времени
  • SCHED_OTHER - не в режиме реального времени, планирование с максимальными усилиями

Заметно отсутствует, если ваш вопрос - EDF или вообще какой-либо планировщик, управляемый по срокам. Почему бы и нет? Ну, число приложений, желающих выполнить анализ, необходимый для использования планировщика крайних сроков, и сложности с его интеграцией с другими политиками планирования могут быть драйверами. В статье LWN обсуждается планирование сроков в Linux , около 2009 г.

В некоторых попытках были предложены дополнительные политики планирования для Linux. Несколько хороших примеров - проект UNC LitmusRT и проект ChronOS от Virginia Tech . LitmusRT фокусируется на семействе мягких планировщиков реального времени и сопутствующих примитивов синхронизации. ChronOS находится в том же домене, но в основном сфокусирован на планировании на основе Utility-Accrual (UA) (см., Например, этот тезис и функции полезности времени на странице Дженсена) и синхронизации политика.

Кажется также, что недавно появилась реализация планировщика EDF (которую я не использовал и не заметил до ответа на этот вопрос.)

Есть также коммерческие поставщики Linux, которые имеют другие реализации планировщика реального времени. Их доступность может быть немного запутанной. Примером является Concurrent RedHawk linux , который включает политику планирования, управляемую временем. Подробная информация об ОС представлена ​​в таблице . RedHawk используется во многих приложениях DoD для США в режиме реального времени и в режиме реального времени.

...