Системы реального времени.-7
.pdfТомский межвузовский центр дистанционного образования
Ю.Б. Гриценко
СИСТЕМЫ РЕАЛЬНОГО
ВРЕМЕНИ
Учебное пособие
ТОМСК
2009
Федеральное агентство по образованию
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра автоматизации обработки информации (АОИ)
Ю.Б. Гриценко
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ
Учебное пособие
2009
Рецензенты: канд. техн. наук, доцент кафедры теоретических основ информатики Томского государственного университета Гусев И.С.; д-р техн. наук, профессор кафедры прикладной
информатики Томского государственного университета Сущенко С.П.
Корректор: Осипова Е.А.
Гриценко Ю.Б.
Системы реального времени: Учебное пособие. — Томск: Томский межвузовский центр дистанционного образования, 2009. — 256 с.
Рассмотрены вопросы организации и построения систем реального времени. Сделан обзор современных автоматизированых информационных систем управления технологическими процессами и операционных систем реального времени, используемых в них. Основное внимание уделено вопросу построения операционной системы реального времени QNX (QNX Software Systems Limited).
Предназначено для студентов специальности 230102 — «Автоматизированные системы обработки информации и управление», обучающихся по дистанционной форме.
©Гриценко Ю.Б., 2009
©Томский межвузовский центр дистанционного образования, 2009
3
ОГЛАВЛЕНИЕ
Предисловие.................................................................................. |
6 |
||||
1 Введение в системы реального времени................................. |
8 |
||||
1.1 |
Определения систем реального времени................ |
8 |
|||
1.2 |
Области применения и вычислительные платфор- |
||||
1.3 |
мы СРВ ...................................................................... |
12 |
|||
Организация систем реального времени............... |
18 |
||||
1.3.1 |
Типичное строение систем реального времени |
|
|||
1.3.2 |
18 |
|
|
|
|
Задачи, решаемые в системах реального време- |
|||||
1.3.3 |
ни........................................................................... |
20 |
|||
Архитектура приложений систем реального вре- |
|||||
1.3.4 |
мени с учетом предсказуемости......................... |
21 |
|||
Проектирование систем жесткого реального |
|
||||
|
|
.................................................................времени |
|
|
22 |
Вопросы для самопроверки.......................................... |
28 |
||||
2 Автоматизированные системы управления |
|
||||
технологическими процессами.............................................. |
30 |
||||
2.1 |
Этапы развития АСУТП............................................. |
30 |
2.2 |
Назначение компонентов систем контроля и управ- |
|||
2.3 |
ления ........................................................................ |
34 |
||
Функциональные возможности SCADA-систем...... |
39 |
|||
2.4 |
Контроллеры............................................................ |
41 |
||
2.5 |
Технологические языки программирования |
|
||
|
..................контроллеров по стандарту IEC 1131.3 |
|
|
51 |
Вопросы для самопроверки.......................................... |
54 |
3 Организация операционных систем реального времени... |
55 |
||
3.1 Функциональные требования ОСРВ........................ |
55 |
||
3.1.1 Основные понятия, используемые при формиро- |
|||
|
вании функциональных требований к ОСРВ...... |
55 |
|
3.1.2 Диспетчеризация потоков.................................. |
58 |
||
3.1.3 Уровни приоритетов............................................ |
63 |
||
3.1.4 |
Механизмы синхронизации................................ |
65 |
|
3.1.5 |
Защита от инверсии приоритетов..................... |
65 |
|
3.1.6 |
Временные характеристики ОС......................... |
67 |
|
3.1.7 |
Принципиальные отличия ОСРВ от ОС общего |
|
|
|
...........................................................назначения |
|
68 |
3.2 Архитектуры построения ОСРВ............................... |
69 |
|
|
|
4 |
|
|
|
|
|
|
3.2.1 Монолитные ОС .................................................. |
70 |
||||
|
|
3.2.2 Уровневые ОС ..................................................... |
71 |
||||
|
|
3.2.3 Клиент-серверные ОС (модульная архитектура, |
|
|
|||
|
|
3.2.4 |
...................архитектура на основе микроядра) |
72 |
|||
|
|
Объектная архитектура на основе объектов-ми- |
|||||
|
|
3.2.5 |
кроядер ................................................................ |
74 |
|||
|
|
Обобщенное построение ОСРВ .......................... |
75 |
||||
3.3 |
Разделение ОСРВ по способу разработки ............. |
76 |
|||||
|
Вопросы для самопроверки.......................................... |
78 |
|||||
4 Стандарты на ОСРВ................................................................. |
79 |
||||||
|
4.1 Важность стандартов на ОСРВ................................ |
79 |
|||||
|
4.2 Стандарт SCEPTRE.................................................... |
79 |
|||||
|
4.3 Стандарт POSIX........................................................ |
80 |
|||||
|
4.4 DO-178B.................................................................... |
89 |
|||||
|
4.5 ARINC-653.................................................................. |
90 |
|||||
|
4.6 OSEK.......................................................................... |
90 |
|||||
|
4.7 Стандарты безопасности......................................... |
91 |
|||||
|
4.8 Вопросы для самопроверки..................................... |
94 |
|||||
5 Обзор ОСРВ .............................................................................. |
95 |
||||||
|
5.1 Классификация ОСРВ в зависимости от происхо- |
95 |
|||||
|
|
|
ждения...................................................................... |
||||
|
5.2 Системы на основе обычных ОС.............................. |
95 |
|||||
|
|
5.2.1 Linux..................................................................... |
95 |
||||
|
|
5.2.2 Windows NT.......................................................... |
98 |
||||
|
5.3 Собственно типы ОСРВ.......................................... |
108 |
|||||
|
|
5.3.1 LynxOS................................................................ |
108 |
||||
|
|
5.3.2 OS-9.................................................................... |
121 |
||||
|
|
5.3.3 VxWorks.............................................................. |
125 |
||||
|
|
5.3.4 SoftKernel........................................................... |
131 |
||||
|
|
5.3.5 CHORUS.............................................................. |
133 |
||||
|
|
5.3.6 pSOS................................................................... |
138 |
||||
|
|
5.3.7 ОС2000............................................................... |
140 |
||||
|
|
5.3.8 QNX..................................................................... |
143 |
||||
|
5.4 Специализированные ОСРВ................................... |
146 |
|||||
|
5.5 Обобщенный обзор функциональности ОСРВ...... |
146 |
|||||
|
Вопросы для самопроверки........................................ |
153 |
|||||
6 Микроядро ОС QNX Neutrino............................................... |
155 |
6.1 |
Введение................................................................. |
155 |
6.2 |
Потоки и процессы................................................. |
158 |
6.2.1 Вызовы по управлению потоками.................... |
158 |
5 |
|
|
|
|
6.2.2 Состояния потока.............................................. |
161 |
|||
6.2.3 Планирование потоков..................................... |
162 |
|||
6.2.4 Управление потоками....................................... |
167 |
|||
6.3 Механизмы синхронизации .................................. |
170 |
|
||
6.3.1 Перечень механизмов синхронизации............. |
170 |
|
||
6.3.2 Блокировки взаимного исключения (мьютексы) |
||||
171 |
172 |
|||
6.3.3 Условные переменные...................................... |
||||
6.3.4 Барьеры............................................................. |
174 |
|||
6.3.5 Ждущие блокировки......................................... |
175 |
|||
6.3.6 Блокировки по чтению/записи......................... |
175 |
|||
6.3.7 Семафоры.......................................................... |
176 |
|||
6.3.8 Синхронизация с помощью алгоритма планиро- |
||||
вания................................................................... |
177 |
|||
6.3.9 Синхронизация с помощью механизма обмена |
|
|
||
......................................................сообщениями |
|
178 |
||
6.3.10 Синхронизация с помощью атомарных опера- |
||||
ций...................................................................... |
178 |
|||
6.4 Межзадачное взаимодействие ............................. |
179 |
|
||
6.4.1 Формы межзадачного взаимодействия........... |
179 |
|
||
6.4.2 Связь между процессами посредством сообще- |
||||
ний....................................................................... |
180 |
6.4.3 |
Примеры связи между процессами посредством |
|
|
|||
6.4.4 |
........................................обмена сообщениями |
190 |
|
|
||
Связь между процессами посредством сигналов |
|
|||||
6.5 |
|
196 |
200 |
|
||
Управление таймером............................................ |
|
|||||
6.6 |
Сетевое взаимодействие....................................... |
209 |
|
|||
6.7 |
Первичная обработка прерываний....................... |
211 |
|
|||
6.8 |
Диагностическая версия микроядра.................... |
214 |
|
|||
Вопросы для самопроверки........................................ |
217 |
|
7 Администратор процессов и управление ресурсами в ОС
QNX........................................................................................... |
218 |
|
7.1 Управление процессами........................................ |
218 |
|
7.2 Обработчики прерываний...................................... |
225 |
|
7.3 Администраторы ресурсов.................................... |
227 |
|
7.4 |
Файловые системы в QNX...................................... |
228 |
7.5 |
Инсталляционные пакеты и их репозитарии....... |
231 |
7.6 |
Символьные устройства ввода/вывода................. |
233 |
7.7 |
Сетевая подсистема QNX....................................... |
236 |
|
|
6 |
|
|
7.8 |
Технология Jump Gate ........................................... |
244 |
||
|
7.9 |
Графический интерфейс пользователя Photon |
|
|
|
|
..................................................................microGUI |
|
246 |
|
7.10 Печать в ОС QNX .................................................. |
249 |
||
|
Вопросы для самопроверки........................................ |
250 |
||
8 Контрольные работы............................................................. |
251 |
|||
8.1 |
Контрольная работа № 1....................................... |
251 |
||
8.2 |
Контрольная работа № 2....................................... |
251 |
||
Глоссарий................................................................................... |
259 |
|||
Список литературы.................................................................. |
261 |
ПРЕДИСЛОВИЕ
В учебном пособии рассказывается о системах реального времени. Приводится определение систем реального времени и их классификация, рассматриваются основные параметры и ме-
7
ханизмы, обеспечивающие требования реального времени. Сделан упор на обзор операционных систем реального времени.
Базовыми категориями в освоении данного курса являются понятия и концепции: построения систем реального времени, диспетчеризация потоков, установка уровней приоритетов, механизмы синхронизации и защиты от инверсии приоритетов.
Для изучения дисциплины «Системы реального времени» необходимо иметь навыки программирования на языке высокого уровня Си, освоить курсы «Операционные системы», «Архитектура и организация ЭВМ».
Учебное пособие по курсу «Системы реального времени» представлено в семи разделах.
В первом разделе вводятся определения систем реального времени, области применения и вычислительные платформы систем реального времени. Также в разделе уделено внимание обзору архитектур операционных систем реального времени и рассмотрено типичное строение системы реального времени.
Второй раздел содержит описание развития автоматизированных систем управления технологическими процессами, назначения их отдельных компонент, а также в нем представлены функциональные возможности SCADA-систем, контроллеров и технологических языков программирования.
Третий раздел включает вопросы организации операционных систем реального времени, их функциональные требования и архитектуры построения.
Стандарты на создание операционных систем реального времени рассмотрены в четвертом разделе. Раздел содержит описание стандартов SCEPTRE, POSIX, DO-178B, ARINC-653, OSEK и стандарты безопасности.
Пятый раздел содержит классификацию операционных систем реального времени в зависимости от происхождения и обзор основных функциональных возможностей конкретных операционных систем реального времени
В шестом разделе приведено описание общего представление об ОС QNX, основные характеристики микроядра ОС QNX, описание связей между процессами, вопросы сетевого взаимодействия, механизм планирования процессов и первичной обработки прерываний.
8
В седьмом разделе рассматривается работа администратора процессов и управление ресурсами ОС QNX. Вводится понятие администраторов ресурсов, описываются следующие ресурсы — файловые системы, инсталляционные пакеты, символьные устройства ввода/вывода, сетевая подсистема QNX, графический интерфейс пользователя, печать.
1ВВЕДЕНИЕ В СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ
1.1 Определения систем реального времени
9
Понятия «реальное время», «операционные системы реального времени» известны всем, но толкуются они часто по-разно- му, и спектр этих толкований очень широк. Количество иллюзий и мифов в мире реального времени велико. Прежде чем перейти к их рассмотрению, необходимо дать понятие определению «параллельные системы».
Программные системы, которые по своему назначению должны обрабатывать одновременные события или управлять одновременно выполняемыми операциями, инициируемыми внешними по отношению к ним программами или пользователями, являются параллельными по своей природе [1].
К параллельным системам относятся:
–Системы реального времени (СРВ) и встроенные системы (специального назначения).
–Обычные и распределенные операционные системы (их компоненты распределены по нескольким компьютерам).
–Системы управления базами данных и системы обработки транзакций.
–Распределенные сервисы прикладного уровня. Рассмотрим первый класс параллельных систем — системы
реального времени.
Английский термин «real-time» и соответствующее ему в русском языке понятие «реальное время» является наиболее спорным и сложным термином. Данное понятие применяется в различных научно-технических областях и подразумевает некие действия, продолжительность которых определяется внешними процессами.
Специфическая особенность систем реального времени
заключается в том, что к ним предъявляются строгие временные требования, диктуемые окружением или определяемые их назначением [1].
Вышеприведенное определение не является единственным для понимания смысла данного понятия, приведем еще несколько определений:
– Система называется системой реального времени, если правильность ее функционирования зависит не только от логической корректности вычислений, но и от времени, за которое эти вычисления производятся. То есть для событий, происходящих в