Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции - Начало

.doc
Скачиваний:
29
Добавлен:
02.05.2014
Размер:
130.56 Кб
Скачать

Составитель А.М. Сулейманова

УДК 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

5