Цели и задачи дисциплины
Предмет дисциплины «Технологии программирования сложных систем» – процесс разработки сложных управляющих программ реального времени.
Цель дисциплины «Технологии программирования сложных систем» – формирование и развитие общекультурных и профессиональных компетенций магистров для успешной профессиональной деятельности, связанной с разработкой, отладкой и внедрением управляющих приложений реального времени для сложных технических систем на базе ОСРВ, используя встраиваемую аппаратную платформу.
Задачами изучения дисциплины «Технологии программирования сложных систем» являются:
- Углубить понимание: особенностей ОСРВ, архитектуры микроядра, механизмов реального времени в ОСРВ.
- Отработать навыки: разработки многопоточных приложений с жесткими временными ограничениями, управления ресурсами, межзадачного взаимодействия (IPC).
- Освоить практику: взаимодействия с аппаратурой на уровне регистров периферии (GPIO, PWM, ADC, UART) и через драйверы устройств.
- Научиться применять: инструменты разработки, отладки и анализа производительности.
- Сформировать умение: проектировать архитектуру управляющего ПО для типовых задач в технических системах управления.
Краткое содержание дисциплины
Архитектура ОСРВ. Микроядро. Менеджеры ресурсов. Принципы реального времени: детерминизм, приоритеты, прерывания. Отличия от монолитных и модульных ОС (Linux). Обзор инструментария.
Аппаратная платформа встраиваемой системы управления. Обзор процессора и периферии. Схемотехника важных выводов. Особенности запуска ОСРВ (образ BSP, загрузчик).
Потоки (Threads) в ОСРВ: создание, атрибуты, приоритеты, планировщик. Синхронизация: мьютексы, условные переменные, семафоры, спинлоки. Критические секции, инверсия приоритетов.
Межпроцессное взаимодействие (IPC): Сообщения (MsgSend/Receive/Reply/Pulse) - основа микроядерной архитектуры. Каналы. Именование. Сравнение с IPC в Linux. Работа с сигналами.
Таймеры и временные характеристики. Таймеры. Часы. Анализ временных характеристик: измерение времени выполнения, джиттер. Принципы написания детерминированного кода.
Доступ к аппаратуре. Модель "ресурс-менеджер-клиент". Стандартные менеджеры устройств (devc-*, io-*). Прямой доступ к памяти (DMA). Обработка прерываний. Сигналы в контексте аппаратуры.
Программирование периферии аппаратной платформы. Администратор ресурсов. Работа с регистрами через разделяемую память. Работа с GPIO, ШИМ. Использование UART, АЦП. Протоколы I2C/SPI.
Инструменты отладки и анализа ОСРВ. Системный логгер. Трассировка. Профилировщик. Анализ производительности и временных характеристик. Кросс-отладка. Принципы проектирования надежных систем реального времени.