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.