- •2. Ядра и операционные системы реального времени
- •2.1. Задачи, процессы, потоки
- •2.2. Основные свойства задач
- •2.3. Планирование задач
- •2.4. Синхронизация задач
- •2.5. Тестирование
- •2.6. Можно ли обойтись без ОС РВ?
- •3. Обзор некоторых операционных систем реального времени
- •3.1. Linux реального времени
- •3.2. Операционные системы реального времени и Windows
- •3.3. Операционная система QNX
- •3.4. Проект Neutrino
- •4.1. Организация промышленных систем
- •4.2. Аппаратная архитектура
- •4.3. Стандарты шин
- •4.4. Технологии VME и PCI
- •4.5. Мезонинные технологии
- •4.6. Полевые системы
- •4.7. Программное обеспечение промышленных систем
- •4.8. Управление производством
- •Часть 2. ПРОЕКТИРОВАНИЕ СРВ
- •5. UML проектирование систем реального времени
- •5.1. Объектно-ориентированные методы и UML
- •5.2. Метод и нотация
- •5.3. Системы и приложения реального времени
- •6. Обзор нотации UML
- •6.1. Диаграммы UML
- •6.2. Диаграммы прецедентов
- •6.3. Нотация UML для классов и объектов
- •6.4. Диаграммы классов
- •6.5. Диаграммы взаимодействия
- •6.6. Диаграммы состояний
- •6.7. Пакеты
- •6.8. Диаграммы параллельной кооперации
- •6.9. Диаграммы развертывания
- •6.10. Механизмы расширения UML
- •7.1. Среды для параллельной обработки
- •7.2. Поддержка исполнения в мультипрограммной и мультипроцессорной средах
- •7.3. Планирование задач
- •7.4. Вопросы ввода/вывода в операционной системе
- •7.6. Технология World Wide Web
- •7.7. Сервисы распределенных операционных систем
- •7.8. ПО промежуточного слоя
- •7.9. Стандарт CORBA
- •7.10. Другие компонентные технологии
- •7.11. Системы обработки транзакций
- •8. Разбиение на задачи
- •8.1. Вопросы разбиения на параллельные задачи
- •8.2. Категории критериев разбиения на задачи
- •8.3. Критерии выделения задач ввода/вывода
- •8.4. Критерии выделения внутренних задач
- •8.5. Критерии назначения приоритетов задачам
- •8.6. Критерии группировки задач
- •8.7. Пересмотр проекта путем инверсии задач
- •8.8. Разработка архитектуры задач
- •8.9. Коммуникации между задачами и синхронизация
- •8.10. Спецификация поведения задачи
- •9. Проектирование классов
- •9.1. Проектирование классов, скрывающих информацию
- •9.2. Проектирование операций классов
- •9.3. Классы абстрагирования данных
- •9.4. Классы интерфейса устройства
- •9.5. Классы, зависящие от состояния
- •9.6. Классы, скрывающие алгоритмы
- •9.7. Классы интерфейса пользователя
- •9.10. Внутренние программные классы
- •9.11. Применение наследования при проектировании
- •9.12. Примеры наследования
- •9.13. Спецификация интерфейса класса
- •10. Детальное проектирование ПО
- •10.1. Проектирование составных задач
- •10.2. Синхронизация доступа к классам
- •10.4. Логика упорядочения событий
- •11.1. Теория планирования в реальном времени
- •11.2. Развитие теории планирования в реальном времени
- •11.5. Пример анализа производительности с помощью анализа последовательности событий
- •11.6. Пример анализа производительности с применением теории планирования в реальном времени
- •11.8. Пересмотр проекта
- •11.9. Оценка и измерение параметров производительности
- •12. ЗАКЛЮЧЕНИЕ
- •СПИСОК ЛИТЕРАТУРЫ
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
276 |
Для начала назначьте всем задачам в цепочке одинаковые при- оритеты. С точки зрения теории планирования в реальном времени вместо них можно рассмотреть одну эквивалентную задачу. Она по- требляет время, которое равно сумме времен, потребляемых всеми задачами в группе, плюс затраты на контекстное переключение, меж- задачные коммуникации и синхронизацию. В качестве периода экви- валентной задачи устанавливается время в худшем случае между по- следовательными приходами внешнего события, активизирующего цепочку.
Чтобы определить, удовлетворяет ли эквивалентная задача вре- менным ограничениям, нужно применить теоремы из теории плани- рования в реальном времени – в частности, рассмотреть вытеснение высокоприоритетными задачами, блокировку низкоприоритетными задачами и время выполнения эквивалентной задачи. Пример совме- стного использования анализа последовательности событий и пла-
нирования в реальном времени на основе выделения эквивалентных задач приведен в следующем разделе.
Иногда задачи, участвующие в обработке последовательности событий, нельзя заменить одной эквивалентной задачей. Например, это невозможно, если одна из задач встречается в нескольких после-
довательных задачах или если исполнение эквивалентной задачи с тем же приоритетом будет препятствовать своевременному заверше- нию других задач. В таких случаях задачи следует анализировать по отдельности и назначать им различные приоритеты. При решении во- проса о том, смогут ли задачи в цепочке событий удовлетворить вре- менным ограничениям, необходимо учитывать вытеснение и блоки- ровку для каждой задачи в отдельности, но не менее важно рассчи- тать, завершатся ли в срок все задачи в последовательности.
11.5. Пример анализа производительности с помощью анализа последовательности событий
В качестве примера рассмотрим подсистему Круиз-Контроль из системы круиз-контроля и мониторинга. Для анализа будем исполь- зовать изображенную на рис.11.2 диаграмму последовательности со- бытий, которая основана на диаграмме архитектуры задач. Предпо- ложим, что все задачи из подсистемы Мониторинг, а также задача Калибровка из подсистемы Круиз-Контроль имеют низкие приорите- ты, так что на первом этапе их можно не принимать в расчет.
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
277 |
Вначале проанализируем случай, когда водитель переводит руч- ку круиз-контроля в положение «Разгон», инициируя тем самым ав- томатическое ускорение машины. В требованиях к системе записано, что система должна отреагировать на это действие в течение 250 мс. Последовательность внутренних событий, вызванных действием во- дителя, показана на диаграмме параллельной кооперации (рис.11.2).
Предположим, что подсистема Круиз-Контроль находится в со- стоянии Начальное. Ниже приведена цепочка событий, следующих за переводом ручки в положение «Разгон». С. обозначает время, необ- ходимое для обработки i-ого события.
С1: От внешнего устройства Ручка Круиз-Контроля поступает прерывание Круиз-Контроля.
С2: Интерфейс Ручки Круиз-Контроля получает входную ин- формацию «Разгон» от Ручки Круиз-Контроля.
С3: Интерфейс Ручки Круиз-Контроля отправляет сообщение,
содержащее запрос объекту Круиз-Контроль.
С4: Объект Круиз-Контроль принимает сообщение, исполняет свою диаграмму состояний и изменяет состояние с Начальное на Раз-
гон.
С5: Объект Круиз-Контроль посылает команду на увеличение скорости объекту Корректировка Скорости.
С6: Объект Корректировка Скорости выполняет команду и вы- числяет значение дросселя.
С7: Объект Корректировка Скорости передает сообщение, со- держащее значение дросселя, задаче Интерфейс Дросселя.
С8: Интерфейс Дросселя вычисляет новое положение дроссель- ной заслонки.
С9: Интерфейс Дросселя посылает информацию о положении дроссельной заслонки физическому дросселю. (С9 – это операция вы- вода, на которую ЦП время не тратит.)
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
278 |
Рис.11.2. Последовательность событий в системе круиз-контроля после дейст-
вия водителя
На диаграмме последовательности событий (см. рис.11.2) пока- зано, что для обработки внешнего события «Разгон» требуется четы-
ре задачи (Интерфейс Ручки Круиз-Контроля, Круиз-Контроль, Кор- ректировка Скорости и Интерфейс Дросселя). Поэтому имеется как
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
279 |
минимум четыре контекстных переключения, на которые тратится время 4Сx , где Сx – время, необходимое для одного переключения.
Полное время, которое ЦП расходует на эти четыре задачи (Сe ), равно сумме времен выполнения каждой задачи и времени, необхо- димого для межзадачных коммуникаций, плюс затраты на контекст- ное переключение:
Сe = С1 + C2 + С3 + С4 + С5 + С6 + С7 + С8 + 4Сx .
Предположим, что затраты на межзадачные коммуникации Сm постоянны. Тогда С3, С5 и С7 равны Сm, так что полное время вы-
полнения составит
Сe = С1 + C2 + С4 + С6 + С8 + 3Сm + 4Сx . |
(уравне- |
ние 1)
Чтобы определить время реакции системы, необходимо также принять во внимание другие задачи, которые способны выполняться, пока система обрабатывает внешнее событие. Посмотрим, какие еще задачи представлены на рис.11.2. Предположим, что задача Авто- датчики (С10) активизируется каждые 100 мс, поэтому в течение 250 мс она может отработать три раза. Задача Интерфейс Вала (С11) вы- полняется при каждом обороте вала и потому в течение того же вре- менного промежутка может быть активизирована до 25 раз (то есть каждые 10 мс) в предположении, что максимальная скорость враще- ния вала составляет 6000 об/мин. Наконец, задача Путь и Скорость (С12) активизируется четыре раза в секунду и, следовательно, будет запущена только единожды. Каждый раз, как управление получает новая задача, происходит два контекстных переключения, если пред- положить, что текущая задача вытесняется и продолжает работу по- сле завершения прервавшей ее задачи. Таким образом, эти три задачи могут привести к 58 дополнительным переключениям.
Итак, общее время Сa, затраченное системой на три дополни- тельные задачи, с учетом накладных расходов составит
Сa = 3(С10 + 2Сx) + 25(С11 + 2Сx) + (С12 + 4Сx) |
(уравнение |
2)
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
280 |
Полное время ЦП не должно превышать предельное время реак- ции, указанное в требованиях к системе. Это полное время равно
Сt = Сe + Сa |
(урав- |
нение 3) |
|
Прежде чем решать приведенные уравнения, нужно оценить ка- ждый из временных параметров (табл.11.2). Так как ЦП рассчитан на работу в реальном времени, допустимо предположить, что время кон- текстного переключения составляет 0,5 мс.
Таблица 11.2. Затраты процессорного времени в подсистеме Круиз-Контроль
Задача |
С, (мс) Периодиче- |
Задачи, участвую- |
|
|
|
ские задачи |
щие в обработке по- |
|
|
(Ci + 2Cx) мс |
следо-вательности |
|
|
|
событий |
1 |
2 |
3 |
4 |
Прерывание Круиз- |
1 |
|
|
Контроля (С1) |
|
|
|
Интерфейс Ручки |
4 |
|
|
Круиз-Контроля (С2) |
5 |
|
6 |
Всего на Ввод от |
|
||
Круиз-Контроля (С1 + |
|
|
|
С2) |
|
|
|
Круиз-Контроль(С4) |
6 |
|
7 |
Корректировка Ско- |
14 |
15 |
16 |
рости (C6) |
5 |
6 |
6 |
Интерфейс Дросселя |
|||
(С8) |
1 |
|
|
Затраты на Межза- |
|
|
дачные Коммуника- ции (Сm)
www.pdffactory.com