Ek shared resource jo mutual exclusion (mutex) se guard ho — ek waqt mein sirf ek task andar.
Kam se kam teen priority levels — High (H), Medium (M), Low (L).
Trap yeh hai: priority decide karti hai CPU kise milega, lekin mutex decide karta hai critical section mein kaun jaaye. Yeh dono rules aapas mein disagree karte hain. Mutual exclusion temporarily priority ko override kar deta hai — aur ek third task us gap ka faayda utha sakti hai.
L ko H ki priority tak boost karna matlab M (medium) ab L ko preempt nahi kar sakta jab L critical section mein hai. To L apna critical section jaldi khatam karta hai, R release karta hai, aur H chalta hai. Unbounded wala part — M ka intezaar — khatam ho jaata hai. Bacha hua intezaar sirf Low ka critical section length hai = bounded inversion (acceptable).
Ceiling ek gate-keeper ki tarah kaam karta hai entry se pehle hi. Kyunki aap ek critical section mein tab tak nahi ja sakte jab isse blocking ki chain ho sakti ho, PCP guarantee karta hai:
No deadlock (proven — ceilings se imposed ordering acyclic hai).
No chained blocking: ek task zyada se zyada ek baar block ho sakti hai, ek single critical section ki duration ke liye, per activation.
Priority inversion ke liye teeno conditions batao.
Inversion ko unbounded kya banata hai bounded ki jagah?
PIP medium task ko interfere karne se kaise rokta hai?
Ek cheez jo PIP solve nahi karta lekin PCP karta hai?
Kisi resource ka ceiling kya hota hai?
ICPP ko "immediate" kyun kehte hain?
Answers: (1) preemptive priority scheduling, ek shared mutex, ≥3 priority levels. (2) ek medium task jo lock ki zaroorat nahi rakhti lock-holder ko preempt kar leti hai. (3) woh holder ko blocked task ki priority tak boost karta hai taaki medium use preempt na kar sake. (4) deadlock + chained blocking. (5) us highest task ki priority jo kabhi bhi use lock kare. (6) lock-holder turant ceiling tak raise ho jaata hai jis pal lock leta hai, na ki sirf jab kisi ko block kare.
Recall Feynman: 12 saal ke bachche ko samjhao
Socho ek akela bathroom hai (lock). Ek slow bachcha (Low) andar jaata hai. Principal (High) ko urgently chahiye aur woh darwaze pe wait karta hai — theek hai, yeh fair hai, slow bachche ka intezaar karo. Lekin phir ek baatuni teacher (Medium) jo bathroom ki zaroorat hi nahi rakhti slow bachche ko bahar khींch ke baat karne lagti hai! Ab slow bachcha bahar nahi aa sakta, aur principal hamesha ke liye wait mein phans jaata hai. Fix yeh hai: jab slow bachcha bathroom mein ho aur principal wait kar raha ho, slow bachche ko "principal badge" de do taaki baatuni teacher usse interrupt na kar sake — woh jaldi bahar aata hai, aur principal andar jaata hai. Fancy fix (ceiling) bathroom ke darwaze pe ek guard rakhta hai jo tumhe andar tabhi jaane deta hai jab koi aur important bhi use nahi chahega — to jam kabhi hota hi nahi.
Ek high-priority task ek lower-priority task ke shared mutex release karne ka intezaar karte hue block rehti hai; low task effectively high priority ki tarah act karti hai.
Priority inversion ke liye teeno zaruri conditions
Preemptive priority scheduling, mutual exclusion (mutex) se ek shared resource, aur kam se kam teen priority levels.
Bounded vs unbounded priority inversion
Bounded = high sirf low ke critical section ka intezaar karta hai. Unbounded = ek medium task lock-holding low task ko preempt kar leti hai, high ko unlimited amount se delay kar deti hai.
Priority Inheritance Protocol (PIP) ka core idea
Jab ek low task ek mutex pakde hoti hai jis par ek high task block hai, low task ki priority temporarily high task ki priority tak raise ho jaati hai, phir release par restore ho jaati hai.
PIP unbounded inversion ko kyun rokta hai?
Lock-holder ko medium priority se upar boost karna medium ko preempt karne se rokta hai, to critical section jaldi complete hoti hai — wait bounded ban jaata hai.
Do problems jo PIP solve nahi karta
Deadlock aur chained (transitive) blocking through nested mutexes.
Resource ke priority ceiling ki definition
Us highest-priority task ki priority jo kabhi bhi us resource ko lock karegi.
PCP locking rule (system ceiling)
Ek task resource tab lock kar sakti hai jab uski priority strictly un saare resources ke ceilings se zyada ho jo dusri tasks currently lock kiye hain.
Priority Ceiling Protocol ki guarantees
No deadlock, no chained blocking, aur ek task per activation zyada se zyada ek baar (ek critical section se) block hoti hai.
ICPP (immediate ceiling / highest-locker) kya hai
Ek task resource lock karte hi turant us resource ki ceiling tak raise ho jaati hai; PCP jaisa hi worst-case bound lekin simple hai, POSIX PTHREAD_PRIO_PROTECT mein use hota hai.
Priority inversion ka famous real-world case
Mars Pathfinder 1997; shared mutex pe priority inheritance enable karke fix kiya gaya.
PCP vs PIP ke andar worst-case blocking
PCP: zyada se zyada ek (single sabse lambi relevant) critical section. PIP: lower tasks ke relevant critical sections ka sum.