Guida on-line ESET

Ricerca Italiano
Seleziona l'argomento

Deadlock (blocco critico)

Un deadlock è una situazione in cui ciascun processo del computer attende una risorsa assegnata a un altro processo. In questo caso, nessuno dei processi viene eseguito poiché la risorsa richiesta è bloccata da un altro processo che è anche in attesa del rilascio di un’altra risorsa. È importante prevenire un deadlock prima che si verifichi. L’occorrenza di un deadlock può essere rilevata dall’utilità di pianificazione risorse che aiuta il sistema operativo a tenere traccia di tutte le risorse allocate a processi diversi. Un deadlock può verificarsi se le seguenti quattro condizioni si verificano contemporaneamente:

Nessuna azione preventiva: una risorsa può essere rilasciata solo volontariamente dal processo che la blocca dopo il termine della propria attività.

Esclusione reciproca: tipo speciale di semaforo binario utilizzato per controllare l’accesso alla risorsa condivisa. Consente di mantenere bloccate le attività correnti con priorità più elevata per il più breve tempo possibile.

Blocca e attendi: in questa condizione, è necessario che i processi non bloccano più risorse singole o multiple mentre attendono una o più risorse di altra natura contemporaneamente.

Attesa circolare: impone un ordinamento totale di tutti i tipi di risorse. L’attesa circolare richiede inoltre che ogni processo richieda risorse in ordine crescente di enumerazione.

 

Un deadlock può essere gestito in tre modi:

Non consentire al sistema di entrare in uno stato di deadlock.

Lasciare che si verifichi un deadlock, quindi eseguire la precedenza per gestirlo quando si verifica.

In caso di deadlock, riavviare il sistema.