- •Введение
- •1. Требования к осрв:
- •2. Особенности архитектуры осрв:
- •2.1. Микроядерная архитектура и модульность:
- •2.2. Минимальные накладные расходы и статическая конфигурация:
- •2.3. Поддержка жёсткого реального времени и эффективная обработка прерываний:
- •3. Процессы и потоки в осрв:
- •3.1. Процессы в осрв:
- •3.1. Потоки в осрв:
- •3.1. Синхронизация и взаимодействие процессов и потоков:
- •4. Средства синхронизации в осрв:
- •4.1. Семафоры:
- •4.2. Мьютексы:
- •4.3. Очереди сообщений:
- •4.4. События (event flags):
- •4.5. Критические секции:
- •6. Проблема инверсии приоритетов в осрв:
- •7. Протокол наследования приоритетов и протокол граничных приоритетов:
- •7.1. Протокол наследования приоритетов (Priority Inheritance Protocol, pip):
- •7.2. Протокол граничных приоритетов (Priority Ceiling Protocol, pcp):
- •8. Стандарты осрв:
- •8.1. Posix (Portable Operating System Interface):
- •Преимущества posix для осрв:
- •8.2. Arinc 653 (Avionics Application Standard Software Interface):
- •Основные особенности:
- •Применение:
- •Список использованных источников
2.2. Минимальные накладные расходы и статическая конфигурация:
Архитектура ОСРВ оптимизирована для минимизации задержек и использования ресурсов. Это достигается за счёт упрощённых механизмов управления памятью, планирования задач и обработки прерываний. Например, в отличие от универсальных ОС, ОСРВ часто не используют виртуальную память, чтобы избежать неопределённости в времени доступа к данным. Вместо этого применяется прямое управление физической памятью, что делает систему более предсказуемой. Ещё одной важной особенностью является статическая конфигурация. В ОСРВ все ресурсы (память, задачи, драйверы) часто выделяются на этапе компиляции, а не динамически во время выполнения. Это снижает накладные расходы, связанные с динамическим выделением памяти, и повышает предсказуемость системы. Например, в системах управления промышленным оборудованием, где критически важно соблюдение временных ограничений, статическая конфигурация позволяет гарантировать, что все задачи будут выполнены в срок.
2.3. Поддержка жёсткого реального времени и эффективная обработка прерываний:
Архитектура ОСРВ обеспечивает детерминированное выполнение задач, что является ключевым требованием для систем жёсткого реального времени. Это достигается за счёт приоритетного планирования, где задачи с более высоким приоритетом выполняются в первую очередь, а также за счёт предсказуемых алгоритмов планирования. Например, в системах управления роботами или медицинском оборудовании, где задержки недопустимы, ОСРВ гарантирует, что критические задачи будут выполнены в строго определённые временные рамки. Эффективная обработка прерываний — ещё одна важная особенность архитектуры ОСРВ. Система оптимизирована для быстрой реакции на внешние события, такие как сигналы от датчиков или управляющих устройств. Это включает минимизацию времени обработки прерываний и использование приоритетов для критических событий. Например, в системах управления транспортными средствами или авионикой, где задержка в обработке прерывания может привести к катастрофическим последствиям, ОСРВ обеспечивает мгновенную реакцию на внешние события.
3. Процессы и потоки в осрв:
3.1. Процессы в осрв:
В ОСРВ процессы представляют собой изолированные единицы выполнения, которые имеют собственное адресное пространство и ресурсы. Однако, в отличие от универсальных операционных систем, процессы в ОСРВ часто упрощены для минимизации накладных расходов. Это связано с тем, что в системах реального времени критически важно сократить время переключения контекста и обеспечить предсказуемость выполнения задач. В ОСРВ процессы могут быть статически созданы на этапе компиляции, что позволяет избежать динамического выделения ресурсов и снизить неопределённость во времени выполнения. Каждый процесс имеет чётко определённые приоритеты, которые используются планировщиком для определения порядка выполнения задач. Это особенно важно в системах жёсткого реального времени, где нарушение временных ограничений недопустимо. Кроме того, процессы в ОСРВ часто имеют минимальную зависимость от операционной системы, что позволяет им работать с максимальной эффективностью. Например, в embedded-системах процессы могут напрямую взаимодействовать с аппаратным обеспечением, минуя дополнительные слои абстракции.
