Обучалка в Телеграм

Основы программирования приложений реального времени, Баландин А.В., 2023


Основы программирования приложений реального времени, Баландин А.В., 2023.

   В учебном пособии изложены теоретические аспекты параллельных вычислений над оперативными данными с ограниченной во времени актуальностью (темпоральными данными), составляющие основу разработки приложений реального времени. Рассмотрены стандартные средства API операционной системы QNX Neutrino, которые используются для программирования процессно-нитевой структуры многопоточного, параллельного и распределённого приложения. осуществляющего вычисления над разделяемыми темпоральными данными в режиме реального времени.
Пособие подготовлено на кафедре программных систем в качестве курса лекций для магистров, обучающихся по направлению подготовки 02.04.02 Фундаментальная информатика и информационные технологии, осваивающих основы и базовые средства программирования приложений реального времени при изучении дисциплины «Технологии промышленного программирования».
Подготовлено на кафедре программных систем.

Основы программирования приложений реального времени, Баландин А.В., 2023


ТЕМПОРАЛЬНЫЕ ВЫЧИСЛЕНИЯ В ПРИЛОЖЕНИЯХ РЕАЛЬНОГО ВРЕМЕНИ.
Существует класс технических кибернетических систем, к которым, в частности, относятся системы промышленной автоматизации, робототехнические устройства, встроенные в технологическое оборудование цифровые устройства управления и т.п., осуществляющих обработку данных, поступающих с физических объектов в реальном времени, с целью контроля и управления их состоянием. В общем такие системы принято называть системами реального времени, или сокращённо - СРВ [1,2].

Программные системы, обеспечивающие работу систем реального времени, составляют особый класс программных приложений, называемых приложениями реального времени, или сокращённо - ПРВ [3]. Особенностью функционирования ПРВ является их непрерывный во времени обмен данными с параметрами физических объектов, с которыми они связаны специальными аппаратно-программными интерфейсами связи, обеспечивающими получение значений параметров физических объектов для контроля и формирования данных для управления их состоянием, а также устройствами регистрации, хранения, отображения и коммуникации данных. Принципиальная схема ПРВ, обеспечивающего такое функционирование, представлена на рис. 1.

ОГЛАВЛЕНИЕ.
ЧАСТЬ 1. ТЕМПОРАЛЬНЫЕ ВЫЧИСЛЕНИЯ В ПРИЛОЖЕНИЯХ РЕАЛЬНОГО ВРЕМЕНИ.
1. БАЗА ТЕМПОРАЛЬНЫХ ДАННЫХ.
1.1. ТЕМПОРАЛЬНЫЕ ДАННЫЕ И ИХ ХАРАКТЕРИСТИКИ.
1.2. СИСТЕМНОЕ И РЕАЛЬНОЕ ВРЕМЯ ПРВ.
1.2.1. Модель реального времени.
1.2.2. Одномоментность в реальном времени.
1.3. МОДЕЛЬ БАЗЫ ТЕМПОРАЛЬНЫХ ДАННЫХ.
1.4. МОДЕЛЬ ТЕМПОРАЛЬНЫХ ДАННЫХ.
1.5. КЛАССЫ ТЕМПОРАЛЬНЫХ ДАННЫХ.
1.5.1. Датум.
1.5.2. Импульс.
1.5.3. Мода.
1.6. МОДЕЛИ КАНАЛОВ.
1.6.1. Протоколы входных каналов.
1.6.2. Протоколы выходных каналов.
1.7. УПРАВЛЕНИЕ БАЗОЙ ТЕМПОРАЛЬНЫХ ДАННЫХ.
1.7.1. Транзакция актуализации темпорального данного.
1.7.2. Актуализация экзогенных темпоральных данных.
1.7.2.1. Актуализация экзогенного датума.
1.7.2.2. Актуализация экзогенного импульса.
1.7.2.3. Актуализация экзогенной моды.
1.7.3. Актуализация эндогенных темпоральных данных.
1.7.3.1. Актуализация эндогенного датума.
1.7.3.2. Актуализация эндогенного импульса.
1.7.3.3. Актуализация эндогенной моды.
1.8. ЭКСПОРТ ЭКСТЕРНАЛЬНЫХ ДАННЫХ.
1.8.1. Экспорт датума.
1.8.2. Экспорт моды.
1.8.3. Экспорт импульса.
1.9. РАСПРЕДЕЛЁННЫЕ ТЕМПОРАЛЬНЫЕ ВЫЧИСЛЕНИЯ.
1.9.1. Распределённая база темпоральных данных.
1.9.2. Репликация распределённых темпоральных данных.
2. РЕЖИМЫ ЖЁСТКОГО И МЯГКОГО РЕАЛЬНОГО ВРЕМЕНИ.
2.1. ТЕМПОРАЛЬНЫЕ ПРЕЦЕДЕНТЫ.
2.2. РЕЖИМ ЖЁСТКОГО РЕАЛЬНОГО ВРЕМЕНИ.
2.3. РЕЖИМ МЯГКОГО РЕАЛЬНОГО ВРЕМЕНИ.
2.3.1. Деградация темпоральных данных.
2.3.1.1. Оценка деградации и актуализация экзогенного датума.
2.3.1.2. Оценка деградации и актуализация экзогенного импульса.
2.3.1.3. Оценка деградации и актуализация эндогенного датума.
2.3.1.4. Оценка деградации и актуализация эндогенного импульса.
ЧАСТЬ 2. СРЕДСТВА ПРОГРАММИРОВАНИЯ ПРОЦЕССОВ И МЕЖПРОЦЕССНОГО ВЗАИМОДЕЙСТВИЯ.
3. ФАЙЛОВОЕ ПРОСТРАНСТВО QNX.
3.1. ОРГАНИЗАЦИЯ ФАЙЛОВОГО ПРОСТРАНСТВА QNX.
3.2. БАЗОВАЯ СТРУКТУРА КОРНЕВОГО КАТАЛОГА.
3.3. МОНТИРОВАНИЕ ФАЙЛОВЫХ СИСТЕМ.
3.4. ТИПЫ ФАЙЛОВ.
3.4.1. Обычный файл.
3.4.2. Связь.
3.4.3. Каталог.
3.4.4. Именованный канал.
3.4.5. Сокеты.
3.4.6. Устройства.
3.4.7. Виртуальные устройства.
3.4.7.1. Устройство /dev/null.
3.4.7.2. Устройство /dev/zero.
3.4.7.3. Устройство /dev/full.
3.4.7.4. Устройства генерирования случайных чисел.
4. ПОЛЬЗОВАТЕЛИ И ГРУППЫ.
4.1. ИДЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ.
4.2. СОЗДАНИЕ И ИДЕНТИФИКАЦИЯ ГРУПП.
4.3. УДАЛЕНИЕ ПОЛЬЗОВАТЕЛЕЙ И ГРУПП.
4.4. СЕАНС РАБОТЫ ПОЛЬЗОВАТЕЛЯ В СИСТЕМЕ.
4.5. РАЗГРАНИЧЕНИЕ ДОСТУПА К ФАЙЛАМ.
4.6. ПРАВА ДОСТУПА К ФАЙЛУ.
5. ПРОГРАММНЫЙ ИНТЕРФЕЙС QNX.
5.1. СИСТЕМНЫЕ ВЫЗОВЫ И ФУНКЦИИ СТАНДАРТНЫХ БИБЛИОТЕК.
5.2. ОБРАБОТКА ОШИБОК.
6. ФУНКЦИИ УПРАВЛЕНИЯ ФАЙЛОВОЙ СИСТЕМОЙ.
6.1. СМЕНА КОРНЕВОГО КАТАЛОГА.
6.2. СМЕНА ТЕКУЩЕГО КАТАЛОГА.
6.3. СОЗДАНИЕ КАТАЛОГА.
6.4. УДАЛЕНИЕ КАТАЛОГА.
6.5. СОЗДАНИЕ ЖЁСТКОЙ СВЯЗИ.
6.6. СОЗДАНИЕ СИМВОЛИЧЕСКОЙ СВЯЗИ.
6.7. ЧТЕНИЕ СИМВОЛИЧЕСКОЙ СВЯЗИ.
6.8. ПЕРЕИМЕНОВАНИЕ ФАЙЛА.
6.9. УДАЛЕНИЕ ФАЙЛА.
6.10. УПРАВЛЕНИЕ ВЛАДЕЛЬЦАМИ И ПРАВАМИ ДОСТУПА К ФАЙЛАМ.
6.10.1. Управление владельцами.
6.10.2. Управление правами доступа.
7. ФУНКЦИИ БАЗОВОГО ВВОДА/ВЫВОДА ДЛЯ РАБОТЫ С ФАЙЛАМИ.
7.1. ОТКРЫТИЕ ФАЙЛА.
7.2. ДОСТУП К ФАЙЛУ.
8. СТРУКТУРА И ВЫПОЛНЕНИЕ ПРИЛОЖЕНИЙ РЕАЛЬНОГО ВРЕМЕНИ.
8.1. ПРОГРАММЫ, ПРОЦЕССЫ, НИТИ.
8.2. ПРОЦЕССНО-НИТЕВАЯ СТРУКТУРА ПРВ.
8.3. БАЗОВАЯ АРХИТЕКТУРА QNX.
8.4. УПРАВЛЕНИЕ ПРОЦЕССАМИ.
8.4.1. Жизненный цикл процесса.
8.4.2. Свойства и атрибуты процесса.
8.4.3. Идентификаторы процесса.
8.4.4. Текущий и корневой каталоги.
8.4.5. Приоритет и дисциплина диспетчеризации процесса.
8.4.6. Управляющий терминал.
8.5. ТИПЫ ПРОЦЕССОВ.
8.5.1. Системные процессы.
8.5.2. Процессы демоны.
8.5.3. Прикладные процессы.
8.6. ГРУППЫ И СЕАНСЫ.
8.7. ЗАПУСК ПРОЦЕССОВ.
8.7.1. Запуск процесса из shell.
8.7.2. Программный запуск процессов.
8.7.2.1. Функция system().
8.7.2.2. Функции семейства exec*().
8.7.2.3. Функции семейства spawn*().
8.7.2.4. Функция fork().
8.7.2.5. Функция vfork().
8.8. ОРГАНИЗАЦИЯ ВЗАИМОДЕЙСТВИЯ МЕЖДУ ПРОЦЕССАМИ.
8.8.1. Создание и удаление каналов.
8.8.1.1. Создание канала.
8.8.1.2. Удаление канала.
8.8.2. Установление и удаление соединений с каналом.
8.8.2.1. Установление соединения.
8.8.2.2. Разрыв соединения.
8.9. ПЕРЕДАЧА СООБЩЕНИЙ.
8.9.1. Посылка сообщения.
8.9.2. Приём сообщения.
8.9.3. Посылка ответа.
8.9.4. Сценарии ответов.
8.9.5. Сообщения типа "импульс".
8.10. УПРАВЛЕНИЕ СООБЩЕНИЯМИ.
8.10.1. Управление приёмом сообщений.
8.10.2. Управление передачей ответа.
8.10.3. Передача сообщений с использованием векторов ввода/вывода.
9. ОРГАНИЗАЦИЯ ВЗАИМОДЕЙСТВИЯ ПРОЦЕССОВ В СЕТИ.
9.1. СЕТЕВАЯ КОНЦЕПЦИЯ QNX.
9.2. СЕТЕВАЯ НАСТРОЙКА QNX.
9.3. ОРГАНИЗАЦИЯ ВЗАИМОДЕЙСТВИЯ ПРОЦЕССОВ В СЕТИ.
9.3.1. Особенности обмена сообщениями в сети.
9.3.2. Определение дескрипторов удалённых узлов сети.
9.3.3. Запуск процесса на удалённом узле.
9.4. ЛОКАЛИЗАЦИЯ СЕРВЕРА.
9.4.1. Механизм родительского процесса.
9.4.2. Механизм именованных каналов.
9.4.2.1. Создание именованного канала.
9.4.2.2. Соединение с именованным каналом.
9.4.3. Использование именованных каналов в сети.
ЧАСТЬ 3. СРЕДСТВА ПРОГРАММИРОВАНИЕ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ.
10. ПАРАЛЛЕЛЬНО ВЫПОЛНЯЕМЫЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕДУРЫ.
10.1. ФОРМИРОВАНИЕ СВОЙСТВ И ЗАПУСК НИТИ.
10.1.1. Прототип функции и атрибуты нити.
10.1.2. Обособленная или синхронизирующая нить.
10.1.3. Параметры стека нити.
10.1.4. Приоритет и дисциплина диспетчеризации нити.
10.1.5. Создание и запуск нити.
10.2. ПРОБЛЕМА ИНВЕРСИИ ПРИОРИТЕТОВ.
11. МЕТОДЫ И ФУНКЦИИ СИНХРОНИЗАЦИИ НИТЕЙ.
11.1. ПРИСОЕДИНЕНИЕ.
11.2. БАРЬЕРЫ.
11.3. МУТЕКСЫ.
11.3.1. Создание мутекса.
11.3.2. Свойства мутекса.
11.3.3. Захват мутекса.
11.3.4. Осторожный захват мутекса.
11.3.5. Освобождение мутекса.
11.3.6. Уничтожение мутекса.
11.3.7. Создание рекурсивного мутекса.
11.4. БЛОКИРОВКИ ЧТЕНИЯ/ЗАПИСИ.
11.4.1. Создание блокировки чтения/записи.
11.4.2. Свойства блокировки чтения/записи.
11.4.3. Захват блокировки чтения/записи.
11.4.4. Осторожный захват блокировки чтения/записи.
11.4.5. Освобождение блокировки чтения/записи.
11.4.6. Уничтожение блокировки чтения/записи.
11.5. УСЛОВНЫЕ ПЕРЕМЕННЫЕ.
11.6. ЖДУЩИЕ БЛОКИРОВКИ.
11.7. СЕМАФОРЫ.
11.7.1. Неименованный семафор.
11.7.2. Именованные семафоры.
11.7.3. Управление семафорами.
12. УПРАВЛЕНИЕ ПАМЯТЬЮ ВНЕ АДРЕСНОГО ПРОСТРАНСТВА ПРОЦЕССОВ.
12.1. СОЗДАНИЕ ИМЕНОВАННОЙ ПАМЯТИ.
12.2. ОРГАНИЗАЦИЯ ДОСТУПА К ИМЕНОВАННОЙ ПАМЯТИ.
12.3. ОРГАНИЗАЦИЯ ДОСТУПА К УСТРОЙСТВАМ ВВОДА/ВЫВОДА.
13. СИГНАЛЫ.
13.1. МЕХАНИЗМ СИГНАЛОВ.
13.2. МЕХАНИЗМ НАДЁЖНЫХ СИГНАЛОВ.
13.2.1. Набор сигналов и маска блокирования.
13.2.2. Установка диспозиции сигнала.
13.3. НАДЁЖНОЕ УПРАВЛЕНИЕ СИГНАЛАМИ.
13.3.1. Посылка сигнала.
13.3.2. Доставка сигнала процессу и реакция адресата.
13.3.3. Реакция процесса на сигнал.
13.3.4. Ожидание сигнала.
14. МЕХАНИЗМЫ СИНХРОНИЗАЦИИ НИТЕЙ С РЕАЛЬНЫМ ВРЕМЕНЕМ.
14.1. СИСТЕМНОЕ РЕАЛЬНОЕ ВРЕМЯ.
14.1.1. Основные понятия.
14.1.2. Разрешающая способность РВ.
14.1.3. Установка значений абсолютного и интервального времени.
14.2. ТАЙМЕРЫ.
14.2.1. Создание и удаление таймеров.
14.2.2. Типы уведомления нитей.
14.2.3. Уведомление типа "послать импульс".
14.2.4. Уведомление типа "послать сигнал".
14.2.5. Уведомление типа "создать нить".
14.2.6. Планирование срабатывания таймеров.
14.3. ТАЙМАУТЫ ЯДРА.
14.4. ИСПОЛЬЗОВАНИЕ ТАЙМАУТОВ ЯДРА ПРИ ПОСЫЛКЕ СООБЩЕНИЯ.
15. ПРОГРАММИРОВАНИЕ НИТЕЙ ОБРАБОТКИ ПРЕРЫВАНИЙ.
15.1. МЕХАНИЗМ АППАРАТНОГО ПРЕРЫВАНИЯ.
15.2. ОБРАБОТКА ПРЕРЫВАНИЙ В QNX.
15.3. ПРОГРАММИРОВАНИЕ ОБРАБОТКИ ПРЕРЫВАНИЙ.
15.3.1. Определение обработчика прерываний.
15.3.2. Подключение процесса к источнику прерываний.
15.3.2.1. Подключение собственного обработчика прерываний.
15.3.2.2. Установка обработчика прерываний по умолчанию.
15.3.3. Отключение процесса от прерывания.
15.3.4. Управление прерываниями.
15.3.5. Ожидание нитью уведомления о прерывании.
15.3.6. Общий формат процесса с обработкой прерываний.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК.
ПРИЛОЖЕНИЕ.
СИСТЕМНЫЕ СИГНАЛЫ СТАНДАРТА POSIX.



Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Основы программирования приложений реального времени, Баландин А.В., 2023 - fileskachat.com, быстрое и бесплатное скачивание.

Скачать pdf
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России.Купить эту книгу



Скачать - pdf - Яндекс.Диск.
Дата публикации:





Теги: :: ::


 


 

Книги, учебники, обучение по разделам




Не нашёл? Найди:





2025-03-24 23:47:36