AQuoSA - AQuoSA

AQuoSA (Адаптивная архитектура качества обслуживания) [1] является открытая архитектура для предоставления адаптивных Качество обслуживания функциональность в Ядро Linux. Проект имеет гибкую, портативную, легкую и открытую архитектуру для поддержки сервисов, связанных с QoS, поверх универсальной операционной системы, как Linux. Архитектура хорошо основана на формальном анализе расписания и теоретических результатах контроля.

Ключевой особенностью AQuoSA является уровень резервирования ресурсов, который способен динамически адаптировать ЦПУ распределение для приложений с поддержкой QoS на основе их время выполнения требования. Для обеспечения такой функциональности в AQuoSA встроен ЦП на уровне ядра. планировщик реализация резервирование ресурсов механизм для ЦП на базе Самый ранний крайний срок сначала (EDF). Это дает возможность ядру Linux реализовать (частично) временная изоляция среди задач, выполняемых в системе.

AQuoSA - один из немногих проектов, который предоставляет возможности планирования в реальном времени непривилегированным пользователям в многопользовательской системе контролируемым образом с помощью правильно разработанной модели контроля доступа.

Описание

Архитектуру проекта можно резюмировать следующим образом:

AQuoSA.svg

Патч к ядру Linux

На самом низком уровне патч к ядру Linux добавляет возможность уведомлять динамически загружаемые модули о любом соответствующем событии планирования. Они были идентифицированы в создании или смерти задач, а также в событиях блокировки и разблокировки. Этот патч является минимально инвазивным, поскольку состоит из нескольких строк кода, правильно вставленных в основном в код планировщика Linux (sched.c). Он получил название «Generic Scheduler Patch», потому что он потенциально позволяет реализовать любую политику планирования.

Резервирование ресурсов

Слой резервирования ресурсов состоит из трех компонентов.

Основной компонент - динамически загружаемый модуль ядра который реализует парадигму планирования резервирования ресурсов для ЦП, используя функциональные возможности, представленные в ядре Linux через Generic Scheduler Patch.

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

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

С AQuoSA приложения могут напрямую использовать уровень резервирования ресурсов, что позволяет им зарезервировать часть ЦП, чтобы работать с необходимыми гарантиями планирования. Например, мультимедийное приложение может запросить Операционная система для запуска приложения с гарантией планирования по крайней мере Q миллисекунд каждые P миллисекунд, где Q и P зависят от природы приложения.

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

Адаптивное бронирование

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

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

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

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

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

Для этих классов приложений гораздо удобнее использовать методы адаптивного резервирования, подобные тем, которые предоставляются уровнем адаптивного резервирования AQuoSA, который выполняет непрерывный онлайн-мониторинг вычислительных требований процессов приложения, чтобы он может динамически адаптировать резервирование, сделанное на CPU, в зависимости от отслеживаемых данных.

Уровень адаптивного резервирования предоставляет приложениям API для использования набора контроллеров, которые широко используются в широком наборе мультимедийных приложений.

Модель контроля доступа AQuoSA

Большинство вариантов Linux в реальном времени требуют, чтобы пользователи, работающие в режиме реального времени модифицированной ОС, имели права root в системе. Это вполне приемлемо в контексте встроенной системы. Однако это чрезмерно для многопользовательских систем, где функции планирования в реальном времени необходимы для мультимедийных приложений или аналогичных. Поэтому AQuoSA включает специальную модель контроля доступа, с помощью которой системные администраторы могут:

  1. определять квоты планирования в реальном времени для отдельных пользователей или групп в терминах максимальных значений минимальной гарантированной полосы пропускания, которую ОС может предоставить отдельным пользователям или группам в целом;
  2. контролировать, как необязательные требуемые значения полосы пропускания сверх минимальных гарантированных значений распределяются между конкурирующими пользователями в ситуациях перегрузки;
  3. контролировать максимальные накладные расходы на планирование, которые могут быть наложены на систему из-за резервирования в реальном времени, созданного отдельными пользователями или группами; например, позволяя контролировать минимальный период, который может быть указан при резервировании в реальном времени.

Более подробную информацию можно найти в статье по теме, опубликованной на RTAS 2008.[2]

внешняя ссылка

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

  1. ^ Палополи, Луиджи; Кучинотта, Томмазо; Марзарио, Лука; Липари, Джузеппе (апрель 2008 г.). «AQuoSA - Адаптивная архитектура качества обслуживания». Программное обеспечение: практика и опыт. 39: 1–31. CiteSeerX  10.1.1.149.8231. Дои:10.1002 / spe.883.
  2. ^ Кучинотта, Томмазо (2008). «Контроль доступа для адаптивного бронирования в многопользовательских системах». Симпозиум IEEE Real-Time и встроенных технологий и приложений, 2008 г.. С. 387–396. Дои:10.1109 / RTAS.2008.16. ISBN  978-0-7695-3146-5.