Stallo

Definizione rapida

Condizione in cui più attività restano bloccate perché ciascuna attende una risorsa trattenuta da un'altra.

Spiegazione

Lo stallo, o deadlock, si verifica quando si crea una dipendenza circolare che nessun partecipante può risolvere autonomamente. Senza un intervento esterno, i processi coinvolti non proseguono pur restando attivi nel sistema.

Esempio pratico

Il processo A possiede il lock del file e attende il database; il processo B possiede il lock del database e aspetta lo stesso file.

Spiegazione tecnica

Mutua esclusione, possesso con attesa, impossibilità di sottrarre la risorsa e ciclo di dipendenze sono condizioni classiche del deadlock. Ordinare sempre i lock nello stesso modo è una strategia preventiva.

Da non confondere con

Non è starvation: nello stallo esiste un ciclo bloccante, mentre nella starvation un'attività viene continuamente scavalcata pur potendo teoricamente avanzare.