
- •1. Понятие систем реального времени – срв. Реальное время срв. Системы «жесткого» и «мягкого» реального времени.
- •2. Классы систем реального времени. Среда исполнения и среда разработки в срв.
- •2) Время перезагрузки системы.
- •5. Ядро операционной системы реального времени. Функции ядра.
- •6. Архитектуры осрв: монолитные ос.
- •7. Архитектуры осрв: уровневые ос.
- •9. Архитектуры осрв: объектно – ориентированные.
- •10. Задачи, процессы и потоки: понятие, преимущества и недостатки.
- •11. Классификация задач: периодические, апериодические, спорадические, фоновые, задачи-аппендиксы.
- •12. Основные понятия задач: приоритет, прерывания, контекст, состояние (статус) задачи.
- •13. Основные понятия задач: пустая задача, многократный запуск, реентерабельность задачи.
- •14. Планировщик заданий. Алгоритм функционирования планировщика.
- •15. Алгоритмы планирования задач: динамические и статические.
- •17. Алгоритмы планирования по времени выполнения задач.
- •18. Алгоритмы планирования задач: очереди ожидания.
- •19. Алгоритмы планирования задач: карусельная диспетчеризация (циклическое планирование). Преимущества и недостатки.
- •20. Алгоритмы планирования задач: режим разделения времени.
- •21. Алгоритмы планирования задач: квантование по времени и прием равнодоступности.
- •22. Алгоритмы планирования задач: кооперативная многозадачность, приоритетная многозадачность.
- •23. Алгоритмы планирования периодических задач.
- •24. Алгоритмы планирования спорадических и апериодических задач.
- •25. Методы синхронизации задач, связанных друг с другом.
- •26. Средства синхронизации доступа к общим ресурсам.
- •27. Ошибки, возникающие при синхронизации задач: «гонки», инверсия приоритетов, смертельный захват.
- •28. Методы синхронизации задач с внешними событиями.
- •29. Синхронизация задач по времени. Понятие «Tick».
- •30. Стандарты на осрв. Стандарты posix на расширения реального времени.
- •31. Алгоритм оценки систем реального времени. Оптимизация системы реального времени.
- •32. Встроенные системы реального времени (всрв). Определение. Аппаратные средства. Программное обеспечение. Требования к всрв.
- •33. Базы данных реального времени.
- •34. Операционная система qnx. Краткое описание и основные параметры.
- •35. Операционная система os-9. Краткое описание и основные параметры.
- •36. Операционная система VxWorks. Краткое описание и основные параметры.
- •37. Операционные системы реального времени для Windows. Ia-Spox, rtx, Falcon, Hyperkernel.
25. Методы синхронизации задач, связанных друг с другом.
1) Сообщение – механизм передачи информации от одной задачи к другой.
Асинхронное сообщение – случай, когда доставка сообщений задаче производится после того, как она в плановом порядке получит управление.
Синхронное сообщение – случай, когда циркуляция сообщений оказывает непосредственное влияние на планирование задач.
2) Почтовые ящики – механизм передачи информации, когда сообщения передаются через буфер определенного размера, при этом новое сообщение затирает старое, даже если оно не было обработано.
3) Сигналы, события, прокси – механизмы передачи сообщений.
Механизм - принцип, когда каждая задача имеет свою очередь сообщений, в конец которой ставится всякое вновь полученное сообщение.
26. Средства синхронизации доступа к общим ресурсам.
Ресурс – физическое устройство или область памяти, которая одновременно может использоваться только одной задачей (клавиатура, монитор, принтер).
Семафор – средство, использующееся для синхронизации доступа к ресурсам. Представляет собой байтовую переменную, принимающую значение 0 или 1. Задача, перед тем, как используется ресурс захватывает семафор, после чего остальные задачи, желающие использовать тот же ресурс, должны ждать, пока семафор (ресурс) освободится (очередь ожидания).
Двоичные семафоры (начальное значение = 1)
Счетные семафоры (счетчик) – может быть одновременно использован ограниченным числом задач.
Участки кода программ, где происходит обращение к разделяемым ресурсам наз. критическими секциями.
Они критические, потому что несколько задач могут одновременно использовать ресурсы.
Mutex – механизм, который гарантирует, что критическая секция кода программ используется в каждый момент времени только одним потоком (задачей). Это разновидность семафора, которая сигнализирует другим потокам, что критическая секция кода кем-то уже выполняется.
27. Ошибки, возникающие при синхронизации задач: «гонки», инверсия приоритетов, смертельный захват.
Гонки.
Если доступ к ресурсу не упорядочен, то могут возникать времяупорядочные ошибки (гонки)
«Гонка» - ситуация по захвату доступа к ресурсу задачей с немаксимальным приоритетом. Понятие «гонка» связано с операционной системой реального времени.
Устранение этих ошибок:
1) Желательно не использовать алгоритм планирования задач с вытеснением.
2) Нужно выделить отдельную задачу, ответственную за упорядочение доступа к этому ресурсу.
3) Запретить прерывание на время доступа к разделяемым данным.
4) Использовать для упорядочивания доступа семафоры (наиболее часто употребляемое решение).
Инверсия приоритетов.
Инверсия приоритета происходит тогда, когда два или несколько потоков с различными приоритетами находятся в споре, который из них должен быть обслужен процессором.
Рассмотрим простой случай с тремя потоками: поток 1, поток 2 и поток 3.
Поток 1 - высокоприоритетный и становится готовым быть допущенным к процессору для исполнения кода. Поток 2, поток с низким приоритетом, выполняет код в критической секции программы. Поток 1 начинает ожидать совместно используемый ресурс от потока 2. Поток 3 имеет средний приоритет. Поток 3 получает все процессорное время, потому что поток 1 ожидает совместно используемые ресурсы от потока 2. Поток 2 не оставит критическую секцию программы, потому что не имеет самого высокого приоритета и не будет допущен к процессору для исполнения кода. И т.д.
Смертельный захват.
Зацикливание, зависание, т.е. задачи не поделили ресурсы.
Пример: задача А захватила ресурс клавиатуры и ждет, когда освободится дисплей, а другая задача В захватила дисплей и ждет освобождение дисплея.