Priority Inversion
Öncelik terslenmesi (Priority Inversion) — Yüksek öncelikli görevin gereksindiği kaynağı düşük öncelikli görevin tutması nedeniyle etkin olarak düşük öncelikli işi beklemesi durumu.
Nasıl Oluşur?
Yüksek öncelikli bir görev, mutex gibi ortak bir kaynağı beklerken bu kaynak düşük öncelikli görev tarafından tutuluyorsa yüksek öncelikli görev ilerleyemez. Araya giren orta öncelikli görevler düşük öncelikli sahibin CPU almasını geciktirdiğinde bloklama beklenenden çok daha uzun sürebilir.
Bu, yalnız iki thread'in priority değerlerinin farklı olması değildir; ortak kaynak bağımlılığı nedeniyle etkin öncelik sırası tersine dönmüştür.
Gerçek Zamanlı Etki
Priority inversion, worst-case response time hesabını bozabilir ve deadline kaçırılmasına neden olabilir. Priority Inheritance yaklaşımında düşük öncelikli kaynak sahibi geçici olarak bekleyen yüksek önceliği devralabilir. Priority-ceiling protokolleri farklı bir üst sınır stratejisi uygular.
Tasarım Notu
Kilidin kısa tutulması önemlidir ancak tek başına garanti değildir. Kaynak bağımlılığı ve scheduler politikası birlikte analiz edilmelidir.