Вопросы к Поиску с Алисой
Проблема инверсии приоритетов при использовании мьютексов заключается в ситуации, когда высокоприоритетная задача вынуждена ожидать, пока низкоприоритетная задача завершит действия с ресурсом и возвратит мьютекс обратно. kit-e.ru То есть на некоторое время фактический приоритет высокоприоритетной задачи оказывается ниже приоритета низкоприоритетной задачи. kit-e.ru
Наихудший случай инверсии приоритетов возникает, когда в программе есть задачи со «средним» приоритетом — ниже, чем у высокоприоритетной, которая ожидает освобождения мьютекса, но выше, чем у низкоприоритетной, которая в данный момент захватила мьютекс и выполняет действия с разделяемым ресурсом. kit-e.ru Среднеприоритетные задачи могут разблокироваться на протяжении интервала, когда низкоприоритетная задача владеет мьютексом. kit-e.ru В таком случае ко времени, когда высокоприоритетная задача ожидает освобождения мьютекса, будет добавлено время выполнения среднеприоритетных задач. kit-e.ru
Типовым решением проблемы инверсии приоритетов является наследование приоритетов, при котором процесс, владеющий мьютексом, наследует приоритет другого процесса, заблокированного по нему, если приоритет заблокированного процесса выше, чем у текущего. ru.wikipedia.org