Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 610280)
Контекстум

Основы программирования приложений реального времени

0   0
Первый авторБаландин А. В.
АвторыСамарский нац. исслед. ун-т им. акад. С.П. Королева (Самар. ун-т)
ИздательствоИзд-во Самарского университета
Страниц190
ID909724
АннотацияВ учебном пособии изложены теоретические аспекты параллельных вычислений над оперативными данными с ограниченной во времени актуальностью (темпоральными данными), составляющие основу разработки приложений реального времени. Рассмотрены стандартные средства API операционной системы QNX Neutrino, которые используются для программирования процессно-нитевой структуры многопоточного, параллельного и распределённого приложения, осуществляющего вычисления над разделяемыми темпоральными данными в режиме реального времени.
Кем рекомендованоРедакционно-издательским советом федерального государственного автономного образовательного учреждения высшего образования «Самарский национальный исследовательский университет имени академика С.П. Королева» в качестве учебного пособия для обучающихся по основной образовательной программе высшего образования по направлению подготовки 02.04.02 Фундаментальная информатика и информационные технологии
Кому рекомендованоПособие подготовлено на кафедре программных систем в качестве курса лекций для магистров, обучающихся по направлению подготовки 02.04.02 Фундаментальная информатика и информационные технологии, осваивающих основы и базовые средства программирования приложений реального времени при изучении дисциплины «Технологии промышленного программирования».
ISBN978-5-7883-1994-0
УДК004.42(075.8)+004.738.5(075.8)
ББКЗ2.973.4я73
Баландин, А.В. Основы программирования приложений реального времени : учеб. пособие / Самарский нац. исслед. ун-т им. акад. С.П. Королева (Самар. ун-т); А.В. Баландин .— Самара : Изд-во Самарского университета, 2023 .— 190 с. — 1 CD-ROM (3,0 Мб). – Текст: электронный .— ISBN 978-5-7883-1994-0 .— URL: https://rucont.ru/efd/909724 (дата обращения: 04.04.2025)

Предпросмотр (выдержки из произведения)

Основы_программирования_приложений_реального_времени.pdf
УДК 004.42(075)+004.738.5(075) ББК З973.4я7 Б201 Рецензенты: д-р техн. наук, проф. Самарского университета С. А. П р о х о р о в, зам. технического директора по ПО и НИОКР, ООО НВФ «Сенсоры, Модули, Системы», канд. техн. наук В. Е. З а х а р ч е н к о Баландин, Александр Васильевич Б201 Основы программирования приложений реального времени: учебное пособие / А. В. Баландин; Министерство науки и высшего образования Российской Федерации, Самарский университет. – Самара: Издательство Самарского университета, 2023. – 1 CD-ROM (3,0 Мб). – Загл. с титул. экрана. – Текст: электронный. ISBN 978-5-7883-1994-0 В учебном пособии изложены теоретические аспекты параллельных вычислений над оперативными данными с ограниченной во времени актуальностью (темпоральными данными), составляющие основу разработки приложений реального времени. Рассмотрены стандартные средства API операционной системы QNX Neutrino, которые используются для программирования процессно-нитевой структуры многопоточного, параллельного и распределённого приложения, осуществляющего вычисления над разделяемыми темпоральными данными в режиме реального времени. Пособие подготовлено на кафедре программных систем в качестве курса лекций для магистров, обучающихся по направлению подготовки 02.04.02 Фундаментальная информатика и информационные технологии, осваивающих основы и базовые средства программирования приложений реального времени при изучении дисциплины «Технологии промышленного программирования». Подготовлено на кафедре программных систем. УДК 004.42(075)+004.738.5(075) ББК З973.4я7 Минимальные системные требования: РC, процессор Pentium, 160 МГц; Microsoft Windows XP; мышь; дисковод DVD-ROM; Adobe Acrobat Reader. © Самарский университет, 2023 2
Стр.2
ОГЛАВЛЕНИЕ ЧАСТЬ 1. ТЕМПОРАЛЬНЫЕ ВЫЧИСЛЕНИЯ В ПРИЛОЖЕНИЯХ РЕАЛЬНОГО ВРЕМЕНИ ..................... 8 1. БАЗА ТЕМПОРАЛЬНЫХ ДАННЫХ ...................................................................................................................... 10 1.1. ТЕМПОРАЛЬНЫЕ ДАННЫЕ И ИХ ХАРАКТЕРИСТИКИ .................................................................................. 10 1.2. СИСТЕМНОЕ И РЕАЛЬНОЕ ВРЕМЯ ПРВ ..................................................................................................... 11 1.2.1. Модель реального времени ............................................................................................................... 11 1.2.2. Одномоментность в реальном времени ......................................................................................... 12 1.3. МОДЕЛЬ БАЗЫ ТЕМПОРАЛЬНЫХ ДАННЫХ ................................................................................................. 12 1.4. МОДЕЛЬ ТЕМПОРАЛЬНЫХ ДАННЫХ .......................................................................................................... 13 1.5. КЛАССЫ ТЕМПОРАЛЬНЫХ ДАННЫХ .......................................................................................................... 14 1.5.1. Датум ................................................................................................................................................. 14 1.5.2. Импульс .............................................................................................................................................. 15 1.5.3. Мода ................................................................................................................................................... 16 1.6. МОДЕЛИ КАНАЛОВ ................................................................................................................................... 16 1.6.1. Протоколы входных каналов ........................................................................................................... 17 1.6.2. Протоколы выходных каналов ......................................................................................................... 17 1.7. УПРАВЛЕНИЕ БАЗОЙ ТЕМПОРАЛЬНЫХ ДАННЫХ ....................................................................................... 17 1.7.1. Транзакция актуализации темпорального данного ....................................................................... 18 1.7.2. Актуализация экзогенных темпоральных данных ......................................................................... 18 1.7.2.1. Актуализация экзогенного датума ........................................................................................................ 18 1.7.2.2. Актуализация экзогенного импульса .................................................................................................... 19 1.7.2.3. Актуализация экзогенной моды ............................................................................................................ 20 1.7.3. Актуализация эндогенных темпоральных данных ......................................................................... 20 1.7.3.1. Актуализация эндогенного датума ........................................................................................................ 22 1.7.3.2. Актуализация эндогенного импульса ................................................................................................... 23 1.7.3.3. Актуализация эндогенной моды ............................................................................................................ 25 1.8. ЭКСПОРТ ЭКСТЕРНАЛЬНЫХ ДАННЫХ ....................................................................................................... 26 1.8.1. Экспорт датума ............................................................................................................................... 27 1.8.2. Экспорт моды ................................................................................................................................... 27 1.8.3. Экспорт импульса ............................................................................................................................. 28 1.9. РАСПРЕДЕЛЁННЫЕ ТЕМПОРАЛЬНЫЕ ВЫЧИСЛЕНИЯ .................................................................................. 28 1.9.1. Распределённая база темпоральных данных .................................................................................. 28 1.9.2. Репликация распределённых темпоральных данных ..................................................................... 28 2. РЕЖИМЫ ЖЁСТКОГО И МЯГКОГО РЕАЛЬНОГО ВРЕМЕНИ ................................................................... 30 2.1. ТЕМПОРАЛЬНЫЕ ПРЕЦЕДЕНТЫ ................................................................................................................. 30 2.2. РЕЖИМ ЖЁСТКОГО РЕАЛЬНОГО ВРЕМЕНИ ................................................................................................ 31 2.3. РЕЖИМ МЯГКОГО РЕАЛЬНОГО ВРЕМЕНИ .................................................................................................. 31 2.3.1. Деградация темпоральных данных ................................................................................................. 32 2.3.1.1. Оценка деградации и актуализация экзогенного датума ..................................................................... 33 2.3.1.2. Оценка деградации и актуализация экзогенного импульса ................................................................ 34 2.3.1.3. Оценка деградации и актуализация эндогенного датума .................................................................... 35 2.3.1.4. Оценка деградации и актуализация эндогенного импульса ................................................................ 36 ЧАСТЬ 2. СРЕДСТВА ПРОГРАММИРОВАНИЯ ПРОЦЕССОВ И МЕЖПРОЦЕССНОГО ВЗАИМОДЕЙСТВИЯ ...................................................................................................................................................... 38 3. ФАЙЛОВОЕ ПРОСТРАНСТВО QNX .................................................................................................................... 38 3.1. ОРГАНИЗАЦИЯ ФАЙЛОВОГО ПРОСТРАНСТВА QNX .................................................................................. 38 3.2. БАЗОВАЯ СТРУКТУРА КОРНЕВОГО КАТАЛОГА .......................................................................................... 39 3.3. МОНТИРОВАНИЕ ФАЙЛОВЫХ СИСТЕМ ..................................................................................................... 40 3.4. ТИПЫ ФАЙЛОВ .......................................................................................................................................... 41 3.4.1. Обычный файл ................................................................................................................................... 41 3.4.2. Связь ................................................................................................................................................... 42 3.4.3. Каталог .............................................................................................................................................. 42 3.4.4. Именованный канал ........................................................................................................................... 42 3.4.5. Сокеты ............................................................................................................................................... 43 3.4.6. Устройства ....................................................................................................................................... 43 3.4.7. Виртуальные устройства ................................................................................................................ 43 3.4.7.1. Устройство /dev/null ............................................................................................................................... 43 4
Стр.4
3.4.7.2. Устройство /dev/zero ............................................................................................................................... 44 3.4.7.3. Устройство /dev/full ................................................................................................................................ 44 3.4.7.4. Устройства генерирования случайных чисел ....................................................................................... 44 4. ПОЛЬЗОВАТЕЛИ И ГРУППЫ ................................................................................................................................ 45 4.1. ИДЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ ......................................................................................................... 45 4.2. СОЗДАНИЕ И ИДЕНТИФИКАЦИЯ ГРУПП ..................................................................................................... 45 4.3. УДАЛЕНИЕ ПОЛЬЗОВАТЕЛЕЙ И ГРУПП ...................................................................................................... 46 4.4. СЕАНС РАБОТЫ ПОЛЬЗОВАТЕЛЯ В СИСТЕМЕ ............................................................................................ 46 4.5. РАЗГРАНИЧЕНИЕ ДОСТУПА К ФАЙЛАМ ..................................................................................................... 47 4.6. ПРАВА ДОСТУПА К ФАЙЛУ ....................................................................................................................... 48 5. ПРОГРАММНЫЙ ИНТЕРФЕЙС QNX .................................................................................................................. 49 5.1. СИСТЕМНЫЕ ВЫЗОВЫ И ФУНКЦИИ СТАНДАРТНЫХ БИБЛИОТЕК ............................................................... 49 5.2. ОБРАБОТКА ОШИБОК ................................................................................................................................ 49 6. ФУНКЦИИ УПРАВЛЕНИЯ ФАЙЛОВОЙ СИСТЕМОЙ ................................................................................... 51 6.1. СМЕНА КОРНЕВОГО КАТАЛОГА ................................................................................................................ 51 6.2. СМЕНА ТЕКУЩЕГО КАТАЛОГА .................................................................................................................. 51 6.3. СОЗДАНИЕ КАТАЛОГА ............................................................................................................................... 52 6.4. УДАЛЕНИЕ КАТАЛОГА .............................................................................................................................. 52 6.5. СОЗДАНИЕ ЖЁСТКОЙ СВЯЗИ ..................................................................................................................... 53 6.6. СОЗДАНИЕ СИМВОЛИЧЕСКОЙ СВЯЗИ ........................................................................................................ 53 6.7. ЧТЕНИЕ СИМВОЛИЧЕСКОЙ СВЯЗИ ............................................................................................................ 54 6.8. ПЕРЕИМЕНОВАНИЕ ФАЙЛА ....................................................................................................................... 55 6.9. УДАЛЕНИЕ ФАЙЛА .................................................................................................................................... 55 6.10. УПРАВЛЕНИЕ ВЛАДЕЛЬЦАМИ И ПРАВАМИ ДОСТУПА К ФАЙЛАМ ............................................................. 56 6.10.1. Управление владельцами ................................................................................................................ 56 6.10.2. Управление правами доступа ........................................................................................................ 57 7. ФУНКЦИИ БАЗОВОГО ВВОДА/ВЫВОДА ДЛЯ РАБОТЫ С ФАЙЛАМИ ................................................... 60 7.1. ОТКРЫТИЕ ФАЙЛА .................................................................................................................................... 60 7.2. ДОСТУП К ФАЙЛУ ..................................................................................................................................... 64 8. СТРУКТУРА И ВЫПОЛНЕНИЕ ПРИЛОЖЕНИЙ РЕАЛЬНОГО ВРЕМЕНИ .............................................. 66 8.1. ПРОГРАММЫ, ПРОЦЕССЫ, НИТИ ............................................................................................................... 66 8.2. ПРОЦЕССНО-НИТЕВАЯ СТРУКТУРА ПРВ .................................................................................................. 67 8.3. БАЗОВАЯ АРХИТЕКТУРА QNX .................................................................................................................. 68 8.4. УПРАВЛЕНИЕ ПРОЦЕССАМИ ..................................................................................................................... 68 8.4.1. Жизненный цикл процесса ................................................................................................................ 69 8.4.2. Свойства и атрибуты процесса...................................................................................................... 69 8.4.3. Идентификаторы процесса ............................................................................................................. 70 8.4.4. Текущий и корневой каталоги .......................................................................................................... 71 8.4.5. Приоритет и дисциплина диспетчеризации процесса .................................................................. 72 8.4.6. Управляющий терминал ................................................................................................................... 72 8.5. ТИПЫ ПРОЦЕССОВ .................................................................................................................................... 72 8.5.1. Системные процессы ........................................................................................................................ 72 8.5.2. Процессы демоны .............................................................................................................................. 72 8.5.3. Прикладные процессы ....................................................................................................................... 73 8.6. ГРУППЫ И СЕАНСЫ ................................................................................................................................... 73 8.7. ЗАПУСК ПРОЦЕССОВ ................................................................................................................................. 74 8.7.1. Запуск процесса из shell .................................................................................................................... 75 8.7.2. Программный запуск процессов ....................................................................................................... 75 8.7.2.1. Функция system() .................................................................................................................................... 75 8.7.2.2. Функции семейства exec*() .................................................................................................................... 76 8.7.2.3. Функции семейства spawn*() ................................................................................................................. 77 8.7.2.4. Функция fork() ......................................................................................................................................... 79 8.7.2.5. Функция vfork() ....................................................................................................................................... 80 8.8. ОРГАНИЗАЦИЯ ВЗАИМОДЕЙСТВИЯ МЕЖДУ ПРОЦЕССАМИ ....................................................................... 81 8.8.1. Создание и удаление каналов ........................................................................................................... 81 8.8.1.1. Создание канала ...................................................................................................................................... 81 8.8.1.2. Удаление канала ...................................................................................................................................... 81 8.8.2. Установление и удаление соединений с каналом............................................................................ 81 5
Стр.5
8.8.2.1. Установление соединения ...................................................................................................................... 81 8.8.2.2. Разрыв соединения .................................................................................................................................. 83 8.9. ПЕРЕДАЧА СООБЩЕНИЙ ........................................................................................................................... 83 8.9.1. Посылка сообщения .......................................................................................................................... 83 8.9.2. Приём сообщения .............................................................................................................................. 84 8.9.3. Посылка ответа ............................................................................................................................... 85 8.9.4. Сценарии ответов ............................................................................................................................ 86 8.9.5. Сообщения типа "импульс" .............................................................................................................. 87 8.10. УПРАВЛЕНИЕ СООБЩЕНИЯМИ .................................................................................................................. 88 8.10.1. Управление приёмом сообщений ................................................................................................... 89 8.10.2. Управление передачей ответа ...................................................................................................... 90 8.10.3. Передача сообщений с использованием векторов ввода/вывода ............................................... 90 9. ОРГАНИЗАЦИЯ ВЗАИМОДЕЙСТВИЯ ПРОЦЕССОВ В СЕТИ ...................................................................... 92 9.1. СЕТЕВАЯ КОНЦЕПЦИЯ QNX ..................................................................................................................... 92 9.2. СЕТЕВАЯ НАСТРОЙКА QNX ...................................................................................................................... 92 9.3. ОРГАНИЗАЦИЯ ВЗАИМОДЕЙСТВИЯ ПРОЦЕССОВ В СЕТИ ........................................................................... 93 9.3.1. Особенности обмена сообщениями в сети..................................................................................... 93 9.3.2. Определение дескрипторов удалённых узлов сети ........................................................................ 95 9.3.3. Запуск процесса на удалённом узле .................................................................................................. 96 9.4. ЛОКАЛИЗАЦИЯ СЕРВЕРА ........................................................................................................................... 99 9.4.1. Механизм родительского процесса ............................................................................................... 100 9.4.2. Механизм именованных каналов .................................................................................................... 105 9.4.2.1. Создание именованного канала ........................................................................................................... 105 9.4.2.2. Соединение с именованным каналом .................................................................................................. 107 9.4.3. Использование именованных каналов в сети ................................................................................ 112 ЧАСТЬ 3. СРЕДСТВА ПРОГРАММИРОВАНИЕ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ ................................ 116 10. ПАРАЛЛЕЛЬНО ВЫПОЛНЯЕМЫЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕДУРЫ ............................................. 116 10.1. ФОРМИРОВАНИЕ СВОЙСТВ И ЗАПУСК НИТИ ........................................................................................... 116 10.1.1. Прототип функции и атрибуты нити ...................................................................................... 116 10.1.2. Обособленная или синхронизирующая нить .............................................................................. 117 10.1.3. Параметры стека нити .............................................................................................................. 117 10.1.4. Приоритет и дисциплина диспетчеризации нити .................................................................... 118 10.1.5. Создание и запуск нити ............................................................................................................... 120 10.2. ПРОБЛЕМА ИНВЕРСИИ ПРИОРИТЕТОВ ..................................................................................................... 121 11. МЕТОДЫ И ФУНКЦИИ СИНХРОНИЗАЦИИ НИТЕЙ ................................................................................... 123 11.1. ПРИСОЕДИНЕНИЕ .................................................................................................................................... 123 11.2. БАРЬЕРЫ.................................................................................................................................................. 123 11.3. МУТЕКСЫ ............................................................................................................................................... 125 11.3.1. Создание мутекса ........................................................................................................................ 126 11.3.2. Свойства мутекса........................................................................................................................ 126 11.3.3. Захват мутекса ............................................................................................................................ 127 11.3.4. Осторожный захват мутекса.................................................................................................... 127 11.3.5. Освобождение мутекса ............................................................................................................... 127 11.3.6. Уничтожение мутекса ................................................................................................................ 127 11.3.7. Создание рекурсивного мутекса ................................................................................................. 128 11.4. БЛОКИРОВКИ ЧТЕНИЯ/ЗАПИСИ ............................................................................................................... 129 11.4.1. Создание блокировки чтения/записи .......................................................................................... 129 11.4.2. Свойства блокировки чтения/записи ......................................................................................... 129 11.4.3. Захват блокировки чтения/записи .............................................................................................. 130 11.4.4. Осторожный захват блокировки чтения/записи ..................................................................... 130 11.4.5. Освобождение блокировки чтения/записи................................................................................. 130 11.4.6. Уничтожение блокировки чтения/записи ................................................................................. 131 11.5. УСЛОВНЫЕ ПЕРЕМЕННЫЕ ....................................................................................................................... 131 11.6. ЖДУЩИЕ БЛОКИРОВКИ ........................................................................................................................... 134 11.7. СЕМАФОРЫ ............................................................................................................................................. 135 11.7.1. Неименованный семафор ............................................................................................................. 136 11.7.2. Именованные семафоры .............................................................................................................. 136 11.7.3. Управление семафорами .............................................................................................................. 137 6
Стр.6
12. УПРАВЛЕНИЕ ПАМЯТЬЮ ВНЕ АДРЕСНОГО ПРОСТРАНСТВА ПРОЦЕССОВ .................................. 140 12.1. СОЗДАНИЕ ИМЕНОВАННОЙ ПАМЯТИ ...................................................................................................... 140 12.2. ОРГАНИЗАЦИЯ ДОСТУПА К ИМЕНОВАННОЙ ПАМЯТИ ............................................................................. 142 12.3. ОРГАНИЗАЦИЯ ДОСТУПА К УСТРОЙСТВАМ ВВОДА/ВЫВОДА .................................................................. 145 13. СИГНАЛЫ ................................................................................................................................................................. 148 13.1. МЕХАНИЗМ СИГНАЛОВ ........................................................................................................................... 148 13.2. МЕХАНИЗМ НАДЁЖНЫХ СИГНАЛОВ ....................................................................................................... 150 13.2.1. Набор сигналов и маска блокирования ....................................................................................... 151 13.2.2. Установка диспозиции сигнала ................................................................................................... 152 13.3. НАДЁЖНОЕ УПРАВЛЕНИЕ СИГНАЛАМИ .................................................................................................. 154 13.3.1. Посылка сигнала ........................................................................................................................... 154 13.3.2. Доставка сигнала процессу и реакция адресата ...................................................................... 155 13.3.3. Реакция процесса на сигнал ......................................................................................................... 156 13.3.4. Ожидание сигнала........................................................................................................................ 160 14. МЕХАНИЗМЫ СИНХРОНИЗАЦИИ НИТЕЙ С РЕАЛЬНЫМ ВРЕМЕНЕМ ............................................... 161 14.1. СИСТЕМНОЕ РЕАЛЬНОЕ ВРЕМЯ ............................................................................................................... 161 14.1.1. Основные понятия........................................................................................................................ 161 14.1.2. Разрешающая способность РВ ................................................................................................... 162 14.1.3. Установка значений абсолютного и интервального времени ................................................. 163 14.2. ТАЙМЕРЫ ................................................................................................................................................ 165 14.2.1. Создание и удаление таймеров ................................................................................................... 165 14.2.2. Типы уведомления нитей ............................................................................................................. 166 14.2.3. Уведомление типа "послать импульс" ....................................................................................... 166 14.2.4. Уведомление типа "послать сигнал" .......................................................................................... 168 14.2.5. Уведомление типа "создать нить" ............................................................................................ 168 14.2.6. Планирование срабатывания таймеров .................................................................................... 169 14.3. ТАЙМАУТЫ ЯДРА .................................................................................................................................... 174 14.4. ИСПОЛЬЗОВАНИЕ ТАЙМАУТОВ ЯДРА ПРИ ПОСЫЛКЕ СООБЩЕНИЯ ......................................................... 176 15. ПРОГРАММИРОВАНИЕ НИТЕЙ ОБРАБОТКИ ПРЕРЫВАНИЙ ................................................................ 177 15.1. МЕХАНИЗМ АППАРАТНОГО ПРЕРЫВАНИЯ .............................................................................................. 177 15.2. ОБРАБОТКА ПРЕРЫВАНИЙ В QNX .......................................................................................................... 180 15.3. ПРОГРАММИРОВАНИЕ ОБРАБОТКИ ПРЕРЫВАНИЙ .................................................................................. 181 15.3.1. Определение обработчика прерываний ...................................................................................... 181 15.3.2. Подключение процесса к источнику прерываний ...................................................................... 182 15.3.2.1. Подключение собственного обработчика прерываний ..................................................................... 183 15.3.2.2. Установка обработчика прерываний по умолчанию ......................................................................... 183 15.3.3. Отключение процесса от прерывания ....................................................................................... 184 15.3.4. Управление прерываниями ........................................................................................................... 184 15.3.5. Ожидание нитью уведомления о прерывании ........................................................................... 185 15.3.6. Общий формат процесса с обработкой прерываний ............................................................... 185 БИБЛИОГРАФИЧЕСКИЙ СПИСОК ........................................................................................................................ 188 ПРИЛОЖЕНИЕ .............................................................................................................................................................. 189 СИСТЕМНЫЕ СИГНАЛЫ СТАНДАРТА POSIX ...................................................................................................... 189 7
Стр.7

Облако ключевых слов *


* - вычисляется автоматически