
Лекции - Начало
.docСоставитель А.М. Сулейманова
УДК 004.415.2
ББК 32.973.26-018.1
Сулейманова А.М. Системы реального времени: учебное пособие/ Уфимск. гос. авиац. техн. ун-т.– Уфа, 2004.– 292 с.
Учебное пособие состоит из двух частей. В первой части даны определения систем реального времени, рассматриваются вопросы функционирования в реальном масштабе времени. Приведены обзор и сравнительный анализ некоторых операционных систем реального времени. Описаны современные индустриальные системы реального времени. Во второй части описан процесс создания систем реального времени с точки зрения проектирования архитектуры системы. Подробно рассмотрены ключевые вопросы, возникающие в процессе разработки: управление временем отклика, синхронизация, актуальность и непротиворечивость данных. На примерах показано как с помощью одной и той же универсальной нотации UML, можно описать такие далекие друг от друга области, как, например, автоматизированная банковская система и бортовой компьютер автомобиля – без привязки к какой либо программной или аппаратной платформе.
Предназначено для студентов специальностей «Автоматизированные системы обработки информации и управления» и «Прикладная информатика в экономике».
Библиогр.: 29 назв.
Научный редактор: канд.техн.наук, доцент М.Я.Парфенова
Рецензенты: канд.техн.наук, доцент, заведующая кафедрой
Информатики БАГСУ С.М.Ибатуллина
Канд.техн.наук, доцент, заместитель заведующего
кафедрой Управления в ОВД В.А.Пестриков
© Уфимский государственный авиационный
технический университет, 2004
СОДЕРЖАНИЕ
Часть 1. СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ. ОПРЕДЕЛЕНИЯ. ОБЗОР. ОПЕРАЦИОННЫЕ СИСТЕМЫ . . . . . . |
6 |
1. Что такое функционирование в «Реальном масштабе времени» |
6 |
2. Ядра и операционные системы реального времени . . . . . . . . . . . |
11 |
2.1. Задачи, процессы, потоки . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
13 |
2.2. Основные свойства задач . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
14 |
2.3. Планирование задач . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
16 |
2.4. Синхронизация задач . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
20 |
2.5. Тестирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
29 |
2.6. Можно ли обойтись без ОС РВ? . . . . . . . . . . . . . . . . . . . . . . . |
30 |
3. Обзор некоторых операционных систем реального времени . . . |
33 |
3.1. Linux реального времени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
34 |
3.2. Операционные системы реального времени и Windows NT |
40 |
3.3. Операционная система QNX . . . . . . . . . . . . . . . . . . . . . . . . . . |
50 |
3.4. Проект Neutrino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
55 |
4. Современные индустриальные системы, функционирующие в режиме реального времени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
73 |
4.1. Организация промышленных систем . . . . . . . . . . . . . . . . . . |
74 |
4.2. Аппаратная архитектура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
76 |
4.3. Стандарты шин . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
77 |
4.4. Технологии VME и PCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
77 |
4.5. Мезонинные технологии . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
80 |
4.6. Полевые системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
81 |
4.7. Программное обеспечение промышленных систем . . . . . . |
83 |
4.8. Управление производством . . . . . . . . . . . . . . . . . . . . . . . . . . |
90 |
Часть 2. ПРОЕКТИРОВАНИЕ СРВ . . . . . . . . . . . . . . . . . . . . . . . . |
91 |
5. UML проектирование систем реального времени . . . . . . . . . . . |
91 |
5.1. Объектно-ориентированные методы и UML . . . . . . . . . . . . |
92 |
5.2. Метод и нотация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
93 |
5.3. Системы и приложения реального времени . . . . . . . . . . . . |
94 |
6. Обзор нотации UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
96 |
6.1. Диаграммы UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
96 |
6.2. Диаграммы прецедентов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
97 |
6.3. Нотация UML для классов и объектов . . . . . . . . . . . . . . . . . . |
97 |
6.4. Диаграммы классов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
98 |
6.5. Диаграммы взаимодействия . . . . . . . . . . . . . . . . . . . . . . . . . . |
100 |
6.6. Диаграммы состояний . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
101 |
6.7. Пакеты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
103 |
6.8. Диаграммы параллельной кооперации . . . . . . . . . . . . . . . . . |
104 |
6.9. Диаграммы развертывания . . . . . . . . . . . . . . . . . . . . . . . . . . |
105 |
6.10. Механизмы расширения UML . . . . . . . . . . . . . . . . . . . . . . . |
106 |
7. Технологии параллельных и распределенных систем . . . . . . . . |
108 |
7.1. Среды для параллельной обработки . . . . . . . . . . . . . . . . . . . |
108 |
7.2. Поддержка исполнения в мультипрограммной и мультипроцессорной средах . . . . . . . . . . . . . . . . . . . . . . . . . |
110 |
7.3. Планирование задач . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
113 |
7.4. Вопросы ввода/вывода в операционной системе . . . . . . . . |
116 |
7.5. Технологии клиент-серверных и распределенных систем |
119 |
7.6. Технология World Wide Web . . . . . . . . . . . . . . . . . . . . . . . . . |
124 |
7.7. Сервисы распределенных операционных систем . . . . . . . . |
126 |
7.8. ПО промежуточного слоя . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
129 |
7.9. Стандарт CORBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
133 |
7.10. Другие компонентные технологии . . . . . . . . . . . . . . . . . . . |
137 |
7.11. Системы обработки транзакций . . . . . . . . . . . . . . . . . . . . . |
138 |
8. Разбиение на задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
140 |
8.1. Вопросы разбиения на параллельные задачи . . . . . . . . . . . . |
141 |
8.2. Категории критериев разбиения на задачи . . . . . . . . . . . . . . |
142 |
8.3. Критерии выделения задач ввода/вывода . . . . . . . . . . . . . . . |
143 |
8.4. Критерии выделения внутренних задач . . . . . . . . . . . . . . . . |
152 |
8.5. Критерии назначения приоритетов задачам . . . . . . . . . . . . . |
158 |
8.6. Критерии группировки задач . . . . . . . . . . . . . . . . . . . . . . . . . |
160 |
8.7. Пересмотр проекта путем инверсии задач . . . . . . . . . . . . . . |
172 |
8.8. Разработка архитектуры задач . . . . . . . . . . . . . . . . . . . . . . . . |
176 |
8.9. Коммуникации между задачами и синхронизация . . . . . . . |
179 |
8.10. Спецификация поведения задачи . . . . . . . . . . . . . . . . . . . . . |
189 |
9. Проектирование классов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
191 |
9.1. Проектирование классов, скрывающих информацию . . . . . |
192 |
9.2. Проектирование операций классов . . . . . . . . . . . . . . . . . . . . |
193 |
9.3. Классы абстрагирования данных . . . . . . . . . . . . . . . . . . . . . . |
196 |
9.4. Классы интерфейса устройства . . . . . . . . . . . . . . . . . . . . . . . |
199 |
9.5. Классы, зависящие от состояния . . . . . . . . . . . . . . . . . . . . . . |
204 |
9.6. Классы, скрывающие алгоритмы . . . . . . . . . . . . . . . . . . . . . . |
207 |
9.7. Классы интерфейса пользователя . . . . . . . . . . . . . . . . . . . . . |
209 |
9.8. Классы бизнес-логики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
210 |
9.9. Классы-обертки базы данных . . . . . . . . . . . . . . . . . . . . . . . . . |
212 |
9.10. Внутренние программные классы . . . . . . . . . . . . . . . . . . . . |
214 |
9.11. Применение наследования при проектировании . . . . . . . . |
215 |
9.12. Примеры наследования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
216 |
9.13. Спецификация интерфейса класса . . . . . . . . . . . . . . . . . . . . |
222 |
10. Детальное проектирование ПО . . . . . . . . . . . . . . . . . . . . . . . . . . |
225 |
10.1. Проектирование составных задач . . . . . . . . . . . . . . . . . . . . |
225 |
10.2. Синхронизация доступа к классам . . . . . . . . . . . . . . . . . . . . |
233 |
10.3. Проектирование разъемов для межзадачных коммуникаций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
244 |
10.4. Логика упорядочения событий . . . . . . . . . . . . . . . . . . . . . . . |
250 |
11. Анализ производительности проекта параллельной системы |
252 |
11.1. Теория планирования в реальном времени . . . . . . . . . . . . . |
252 |
11.2. Развитие теории планирования в реальном времени . . . . . |
262 |
11.3. Анализ производительности с помощью анализа последовательности событий . . . . . . . . . . . . . . . . . . . . . . . . |
268 |
11.4. Анализ производительности с помощью теории планирования в реальном времени и анализа последовательности событий . . . . . . . . . . . . . . . . . . . . . . . . |
269 |
11.5. Пример анализа производительности с помощью анализа последовательности событий . . . . . . . . . . . . . . . . . . . . . . . . |
271 |
11.6. Пример анализа производительности с применением теории планирования в реальном времени . . . . . . . . . . . . . |
275 |
11.7. Анализ производительности по теории планирования в реальном времени и анализа последовательности событий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
278 |
11.8. Пересмотр проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
287 |
11.9. Оценка и измерение параметров производительности . . . |
288 |
12. Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
290 |
СПИСОК ЛИТЕРАТУРЫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
291 |