Moștenirea prioritară

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Protocolul de moștenire prioritară este utilizat pentru gestionarea accesului la resursele partajate. Atunci când două sau mai multe sarcini (sau fire) trebuie să acceseze aceleași resurse, apare problema cu privire la cine ar trebui să le acceseze mai întâi și cum este posibil să se semnaleze tuturor actorilor, modificarea unei anumite resurse partajate de către un actor. Acest protocol elimină problema inversiunii prioritare, dar suferă problema blocajului .

Fie t1, t2, t3 trei procese sau sarcini sau fire cu prioritate p1, p2, p3 (în ordine de la cea mai mare la cea mai mică prioritate) și fie „S” mutexul care permite accesul la o resursă necesară pentru executarea t1 , t2 și t3.

Dacă t3 dobândește S și ulterior t1 încearcă să dobândească S, t1 blochează încercarea de a dobândi mutex . Acest lucru poate provoca fenomenul inversării prioritare, deoarece t2, care are preempțiune peste t3, poate întârzia și mai mult executarea t1. Pentru a evita acest lucru, protocolul Priority Inheritance prevede că t3, care deține S, moștenește cea mai mare prioritate între (p3) și cea a proceselor care așteaptă pe S, până când mutex este eliberat. În acest caz specific, deoarece p1 este firul cu cea mai mare prioritate care așteaptă pe mutex , t3 va dobândi prioritatea p1 până când eliberează S.

Elemente conexe