- •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. ЗАКЛЮЧЕНИЕ
 - •СПИСОК ЛИТЕРАТУРЫ
 
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ  | 
	293  | 
Суммарный коэффициент использования за счет вытеснения ра-
вен 0,2 + 0,06 = 0,26.
Полный коэффициент использования = коэффициент использо- вания за счет вытеснения + коэффициент использования за счет вы-
полнения = 0,26 + 0.12 = 0,38 < 0,69.
Следовательно, по теореме о верхней границе обе периодиче- ские задачи удовлетворяют временным ограничениям. Точно так же можно показать, что это справедливо и для низкоприоритетных задач. На временной диаграмме изображены две из них: Путь и Скорость и Калибровка.
11.8. Пересмотр проекта
Если первоначальный проект не отвечает требованиям, предъяв- ляемым к эффективности, то его необходимо пересмотреть. Для этого применяются критерии разбиения на задачи и критерии инверсии за-
дач, в частности более слабые формы группировки задач (темпораль- ная инверсия) и другие виды инверсии: инверсия нескольких экземп- ляров задачи и инверсия последовательных задач.
Если бы в примере системы круиз-контроля были проблемы с производительностью, то прежде всего стоило бы подумать об инвер- сии последовательных задач. Рассмотрим ситуацию, когда задача
Круиз-Контроль посылает команду задаче Корректировка Скорости,
которая, в свою очередь, отправляет сообщения задаче Интерфейс Дросселя. Эти три задачи можно объединить, применив инверсию по- следовательных задач, то есть заменив их одной задачей Круиз-Кон-
троль с пассивными объектами Корректировка Скорости и Интер-
фейс Дросселя. Таким образом были бы устранены накладные расхо- ды на межзадачные коммуникации и контекстное переключение. Пусть время ЦП, потребляемое инвертированной задачей, равно Сv . Обратившись к табл. 17.2, получаем:
Сv = С4 + C6 + C8  | 
	(уравнение 4)  | 
Время, необходимое для выполнения двух задач в новой после- довательности обработки события Сee равно
Cee = C1 + C2 + Cv + Cm + 2Сx  | 
	(уравнение 5)  | 
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ  | 
	294  | 
Интересно сравнить уравнение 5 (в последовательности только две задачи) с уравнением 1 из раздела 17.5 (в последовательности че- тыре задачи); накладные расходы на обмен сообщениями уменьши- лись с 3Сm до Сm , а на контекстное переключение – с 4Сx до 2Сx . Воспользовавшись оценками времени из табл. 17.2, увидим, что пол- ное время выполнения сократилось с 35 до 32 мс. Если бы накладные расходы были выше, экономия оказалась бы более существенной. Например, при Сm = 3 мс и Сx = 2 мс общее время выполнения апе- риодических задач уменьшится с 47 до 37 мс.
11.9. Оценка и измерение параметров производительности
Прежде чем приступать к анализу производительности, необхо- димо оценить или измерить различные временные параметры. Это независимые переменные. Оценки для зависимых переменных дает теория планирования в реальном времени.
Основное предположение, на котором базируется теория плани- рования в реальном времени, состоит в том, что все задачи находятся в оперативной памяти, поэтому время на подкачку страниц не тратит- ся. Такого рода накладные расходы могли бы внести дополнительную неопределенность и задержки, нетерпимые в системах с жесткими временными ограничениями.
Ниже приведены параметры, которые нужно оценить для каж- дой задачи:
–период задачи Тi, то есть частота ее выполнения. Для перио-
дических задач период фиксирован. Для апериодических задач берет- ся худший случай: минимальное время между последовательными внешними событиями, которые ее активизируют. Затем полученная величина экстраполируется на внутренние задачи, которые принима- ют участие в обработке данного события;
–время выполнения Сi, то есть потребляемое задачей время процессора. На этапе проектирования можно лишь приблизительно охарактеризовать эту величину. Оцените число строк исходного тек- ста задачи и число команд в откомпилированном коде. Воспользуй- тесь контрольными примерами, написанными на выбранном языке
для работы на выбранном оборудовании под управлением выбранной операционной системы. Сравните результаты контрольного примера
сего размером, чтобы получить оценку времени выполнения отком- пилированного кода.
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ  | 
	295  | 
Следующие три показателя необходимо определить, выполняя измерения для контрольного примера, работающего в тех же услови- ях:
–затраты на контекстное переключение. Время, которое опе-
рационная система расходует на передачу ЦП от одной задачи к дру- гой (см. главу 4);
–затраты на обработку прерываний. Время, предназначенное для обработки прерываний;
–затраты на межзадачные коммуникации и синхронизацию.
Время, израсходованное на посылку сообщения или сигнализацию событию. Зависит от тех примитивов, которые применяет задача.
Эти параметры включаются в расчет времени ЦП, потребляемо- го задачей, как было показано в примерах выше.
www.pdffactory.com
