- •1. Описание задачи
- •2. Модель прецедентов
- •2.1. Прецедент «Выбор необходимой температуры»
- •2.2. Прецедент «Поддержание оптимальной частоты воздуха и заданной температуры»
- •2.3. Абстрактные прецеденты
- •2.4. Абстрактный прецедент «Планирование вентиляционной установки при аварии»
- •2.5. Абстрактный прецедент «Забор воздуха с улицы»
- •2.6. Конкретный прецедент «Выбор необходимой
- •2.7. . Конкретный прецедент «Поддержание оптимальной частоты воздуха и заданной температуры»
- •3. Статическая модель предметной области
- •4. Разбиение на объекты
- •5. Динамическая модель
- •5.1. Диаграмма кооперации для прецедента «Выбор необходимой температуры»
- •5.2. Диаграмма кооперации для прецедента «Забор воздуха с улицы»
- •6. Модель состояний
- •7. Консолидация диаграмм кооперации
- •8. Разбиение на подсистемы
- •9. Разбиение системы на задачи
- •9.1. Выделение задач в подсистеме Вентиляции
- •9.2. Выделение задач в подсистеме датчиков
- •9.3. Выделение задач в подсистеме планировщика
- •9.4. Определение интерфейсов задач
- •10. Проект распределенной системы управления вентиляцией
- •10.1. Структура подсистемы вентиляции
- •10.2. Структура подсистемы датчиков
- •10.3. Структура подсистемы планировщика
- •10.4. Интерфейсы подсистем
- •11. Проектирование скрывающих информацию классов
- •11.1. Проектирование классов интерфейса устройств
- •11.2. Проектирование класса, зависящего от состояния
- •12. Разработка детального проекта программы
- •12.1. Проектирование объектов-разъемов для Вентиляции
- •12.2. Проектирование составных задач
- •13. Конфигурирование целевой системы
- •14. Анализ производительности нераспределенной системы управления Вентиляцией
- •14.1. Сценарий для анализа производительности
- •14.2. Последовательности событий
- •14.3. Назначение приоритетов
- •14.4. Планирование в реальном времени для нераспределенной архитектуры
- •14.5. Последовательность событий «Забор воздуха с улицы»
- •14.6. Последовательность событий «Выбор необходимой температуры»
14.2. Последовательности событий
Рассмотрим сначала соответствующие прецедентам последовательности событий в нераспределенной системе (рис.30).
Последовательность событий «Выбор необходимой температуры» (период = Та):
Е1: Пользователь задает необходимую температуру по объекту Интерфейс Пульта ДУ.
Е2: Интерфейс Пульта ДУ посылает Запрос на заданную температуру объекту Вентиляция.
Е3: Вентиляция посылает Запрос текущей температуры и загрязненности воздуха сущности СостояниеИПланирование Вентиляции.
Е4: Интерфейс Датчиков обновляет информацию в сущности СостояниеИПланирование Вентиляции.
Е5: Вентиляция посылает Код Состояния управляющему объекту Управление Вентиляцией.
Е6: Управляющий объект Управление Вентиляцией вырабатывает посылает Подтверждение объекту Интерфейс Системы охлаждения или Интерфейс Системы Обогрева.
Последовательность событий «Забор воздуха с улицы» (период = Та):
F1: Вентиляция получает информацию о состоянии системы от сущности СостояниеИПланирование Вентиляции.
F2: Объект Интерфейс Датчиков обновляет данные сущности СостояниеИПланирование Вентиляции.
F3: Вентиляция выбирает необходима очистка воздуха или нет и отсылает управляющий объекту Управление Вентиляцией сигнал-состояние.
F4: Управляющий объект Управление Вентиляцией отправляет сообщение объекту Интерфейс Системы Отчистки команду на забор воздуха с улицы.
Рис.30. Последовательность событий в нераспределенной системе управления Вентиляцией
14.3. Назначение приоритетов
Параметры задач в нераспределенной системе управления Вентиляцией приведены в табл.1. Время ЦП для каждой задачи включает затраты на контекстное переключение (не более двух переключений на задачу). Затраты на обработку сообщений поровну разделены между задачей-отправителем и задачей-получателем. Периоды всех задач, участвующих в данной последовательности обработки событий, одинаковы: они определяются поступлением внешнего события, послужившего началом последовательности. Задача Диспетчер Вентиляции рассматривается так, словно представляет собой две разные задачи, поскольку встречается в двух разных последовательностях. В первом случае ее период равен 100 мс (частота активизации Интерфейса Пульта ДУ), а во втором – 200 мс (частота активизации Интерфейса Системы отчистки и вентиляции).
Заметим также, что периоды трех асинхронных задач интерфейса устройств (все они управляются прерываниями) кратны друг другу, то есть эти задачи могут быть готовы к активизации практически одновременно. Поскольку прерывания нужно обрабатывать максимально быстро, данным задачам следует назначить наивысшие приоритеты. Но тогда будет нарушено правило частотной монотонности: например, задача Интерфейс Системы отчистки и вентиляции, имея более длинный период, чем Контроллер Вентиляции, получит тем не менее более высокий приоритет.
Задачи, управляемые прерываниями, исполняются с более высоким приоритетом, чем остальные задачи в данной последовательности. Из-за этого всю совокупность задач нельзя привести к одной эквивалентной задаче с тем же периодом, но потребляющей большее время ЦП. Придется проектировать их как разные задачи с одинаковым периодом.
Рассмотрим, какие приоритеты должен назначить задачам проектировщик (см. табл.1). Если не считать трех задач, управляемых прерываниями, то остальным задачам присваиваются естественные частотно-монотонные приоритеты. Задаче Интерфейс Датчиков определяется наивысший приоритет, что, кстати, согласуется с алгоритмом частотной монотонности. Но уже задачам Интерфейс Пульта ДУ и Интерфейс Системы отчистки и вентиляции назначаются второй и третий по порядку приоритеты, что противоречит этому алгоритму. Следующий приоритет, согласно алгоритму частотной монотонности, получает задача Контроллер Вентиляции, у которой самый короткий период.
Таблица 1. Параметры задач для планирования в реальном времени на примере системы управления Вентиляцией
Задача Время ЦП Период Коэффициент Назначенный С{ Т,
приоритет использования
U
Последовательность событий «Выбор необходимой температуры»
Интерфейс ПДУ
Интерфейс Датчиков
|
0.1 50
1 50 |
0,002
0.02 |
2
1 |
Контроллер Вентиляции |
5 50 |
0,10 |
4 |
Полное затраченное время = 61 мс |
|
Полный коэффициент использования = 0,122 |
|
Последовательность событий |
“Забор воздуха с улицы” |
| |
Интерфейс Системы отчистки и вентиляции |
3 100 |
0,03 |
3 |
Диспетчер Вентиляции |
6 100 |
0,06 |
5 |
Полное затраченное время = 90 мс |
|
Полный коэффициент использования = 0,09 |
|
Прочие задачи | |||
Планировщик |
20 200 |
0,10 |
6 |
|
Полное
затраченное Полный коэффициент
время
= 200 мс использования = 0,10