Deadlock (blocco critico)
Un deadlock si verifica quando ciascun computer attende una risorsa contenuta in un altro processo. È importante prevenire un deadlock prima che possa verificarsi. La pianificazione attività delle risorse è in grado di rilevare l’occorrenza di un deadlock, consentendo al sistema operativo di tenere traccia delle risorse allocate a processi diversi. Un deadlock può verificarsi se sono soddisfatte contemporaneamente le quattro condizioni seguenti:
•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.
•Fai entrare il deadlock e affrontalo utilizzando le tue armi migliori.
•Se si verifica un deadlock, riavviare il sistema.