Spinlock

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

În informatică, un spinlock sau chiar spinning este o tehnică de programare care folosește un ciclu de așteptare ocupat pentru a implementa rutina de așteptare a blocării . Tehnica constă în verificarea periodică a blocării blocării , efectuarea unui test care poate avea loc la intervale de timp prestabilite sau în cel mai scurt timp posibil permis de sistem .

argumente pro şi contra

Implementarea unui spinlock poate avea loc în întregime în contextul activ sarcinii , fără a fi nevoie de a apela funcții ale sistemului de operare sau de execuție mediu ; util în sistemele multiprocesor în care schimbarea contextului este mult mai costisitoare (în termeni de timp). Principalul dezavantaj este risipa enormă de timp de calcul care poate fi contracarată doar cu costul extinderii intervalelor de verificare, prelungind astfel și așteptarea medie a firelor sau proceselor care concurează pentru blocare .

Alternative

Aproape toate sistemele de operare moderne oferă o interfață dedicată pentru implementarea blocărilor ca parte a API - ului . Funcțiile native ale sistemului de operare sunt mult mai eficiente decât blocurile rotative și nu au probleme de sincronie inerente acestora, deoarece utilizează direct sistemul de monitorizare a planificatorului . Mediile de rulare ale limbajelor de programare la nivel înalt implementează blocaje prin funcțiile corespunzătoare ale sistemului de operare .

Aplicații practice

Utilizarea spinlock-urilor poate fi necesară atunci când mediul de execuție nu oferă o interfață adecvată pentru sincronizare prin intermediul blocărilor . Acesta este cazul unor sisteme de operare în timp real care nu au un programator potrivit pentru multitasking . Pe platformele multiprocesor , unde comunicația între firele care rulează pe diferite procesoare poate dura sute sau mii de cicluri de ceas , este, de asemenea, obișnuit să se utilizeze blocuri de expirare hibrid, care, dacă nu sunt întrerupte într-un timp limitat sau într-un număr predeterminat de iterații, expiră delegând așteptarea la un monitor real.

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT