- •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. ЗАКЛЮЧЕНИЕ
- •СПИСОК ЛИТЕРАТУРЫ
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
103 |
6.5.Диаграммы взаимодействия
ВUML есть два вида диаграмм взаимодействия: диаграммы
кооперации (collaboration diagram) и диаграммы последовательности
(sequence diagram). Семантически они эквивалентны.
6.5.1. Диаграммы кооперации. На диаграмме кооперации пока- зывается, как объекты динамически общаются между собой, посылая и получая сообщения. Эта диаграмма представляет структурную ор- ганизацию взаимодействующих объектов, изображаемых в виде пря- моугольников и соединяющих их дуг.
Помеченные стрелки рядом с дугами обозначают имя сообще- ния и направление его передачи между объектами. Отдельные сооб- щения в последовательности сообщений, отправляемых от одного объекта к другому, нумеруются. Нотация диаграмм кооперации пред- ставлена на рис.6.5. Необязательное повторение обозначается симво- лом *, свидетельствующим, что информация посылается более одно- го раза. Необязательное условие означает, что сообщение посылается только тогда, когда условие истинно.
Рис. 6.5. Диаграмма кооперации в нотации UML
6.5.2. Диаграммы последовательности. Другой способ показать взаимодействие объектов – воспользоваться диаграммой последова- тельности (рис. 6.6). На ней обмен объектов сообщениями пред- ставлен во времени более точно и наглядно. Диаграмма последова- тельности двумерна: участвующие объекты изображаются вдоль го- ризонтальной оси, а время откладывается вдоль вертикальной. От
прямоугольника каждого объекта идет вниз вертикальная пунктирная линия, называемая линией жизни. Период, в течение которого объект
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
104 |
выполняет операцию, именуется активизацией. На протяжении этого периода линия жизни изображается двойной сплошной линией.
Актер обычно изображается в левом верхнем углу диаграммы. Помеченные горизонтальные линии представляют пересылку сооб- щений. Существенны только отправитель и получатель сообщения. Сообщение посылается объектом-отправителем объекту-получателю. Время возрастает в направлении сверху вниз. Расстояние по вертика- ли между сообщениями не имеет значения.
6.6.Диаграммы состояний
Внотации UML диаграмма перехода состояний называется диа- граммой состояний. На ней состояния представляются прямоуголь- никами со скругленными углами, а переходы – соединяющими их ду- гами (рис. 6.7). Начальное состояние обозначается дугой, исходящей из маленького закрашенного кружка. Может также присутствовать необязательное конечное состояние, изображаемое закрашенным кружком внутри незакрашенного (иногда его называют «бычий глаз»). Диаграмму состояний разрешается подвергнуть иерархиче- ской декомпозиции, так что надсостояние разлагается на подсостоя-
ния.
Рядом с дугой, представляющей переход, находится условие пе-
рехода в виде: Событие [условие]/Действие. Событие вызывает пе-
реход в новое состояние. Если задано необязательное булевское усло- вие, то переход осуществится, когда оно истинно. В результате пере- хода может быть выполнено необязательное действие. Дополнитель- но с состоянием иногда ассоциируются:
§действие при входе в состояние;
§деятельность, выполняемая во время нахождения внутри со- стояния;
§действие при выходе из состояния.
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
105 |
Рис.6.6. Диаграмма последовательности в нотации UML
Рис. 6.7. Диаграмма состояний в нотации UML
надсостояние с последовательными подсостояниями
На рис. 6.7 показано надсостояние А, разложенное на два после- довательных подсостояния – А1 и А2. В этом случае диаграмма в ка- ждый момент времени может находиться только в одном состоянии, то есть сначала будет вход в подсостояние А1, а затем – в подсостоя- ние А2. На рис.6.8 изображено надсостояние В, разложенное на два параллельных подсостояния – ВС и BD. Здесь объект, описываемый диаграммой, одновременно находится в каждом из подсостояний ВС и BD. Далее каждое параллельное подсостояние раскладывается на
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
106 |
последовательные. Таким образом, вход в надсостояние В сопровож- дается одновременным входом в подсостояния В1 и В3.
Рис. 6.8. Нотация U ML для диаграммы состояний:
надсостояние с параллельными подсостояниями
6.7.Пакеты
ВUML пакетом называется группа элементов модели, исполь- зуемая, например, для представления системы или подсистемы. Такая группа изображается пиктограммой папки – большим прямоугольни- ком, над которым находится прямоугольник поменьше (рис. 6.9). Па- кеты бывают вложенными; между ними могут существовать отноше- ния зависимости и обобщения/специализации. Пакеты способны со- держать классы, объекты или прецеденты.
Рис. 6.9. Нотация UML для пакетов
6.8. Диаграммы параллельной кооперации
www.pdffactory.com