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