Что такое инверсия приоритетов в RTOS?
RTOS на STM32
Аудио-карточка · 0:48Nortren·
Что такое инверсия приоритетов в RTOS?
0:48
Инверсия приоритетов — это ситуация, когда задача с высоким приоритетом ждёт ресурс, занятый задачей с низким приоритетом, а задача с низким приоритетом не может его освободить, потому что её вытесняет задача со средним приоритетом. В результате высокоприоритетная задача косвенно блокируется средней. Это классическая проблема RTOS, приводившая к серьёзным сбоям, например к перезагрузкам марсохода Pathfinder. Решение — наследование приоритетов: когда высокоприоритетная задача ждёт мьютекс, владелец мьютекса временно получает её приоритет, чтобы быстрее освободить ресурс. FreeRTOS поддерживает эту стратегию через мьютексы.