Il deadlock é una condizione in cui ogni processo in un gruppo é bloccato in attesa di un evento che puó essere generato solo da un altro processo del gruppo, tipicamente il rilascio di risorse.

Come si verifica un deadlock

Affinché il deadlock si possa verificare devono essere soddisfatte contemporaneamente 4 condizioni:

Come affrontare il problema

Vediamo come affrontare il problema del deadlock:

Evitare il deadlock

I metodi per evitare il deadlock non pongono vincoli su come fare le richieste, ma chiedono al processo informazioni supplementari sull’utilizzo delle risorse e le utilizzano per verificare se lo stato risultante da una richiesta é sicuro.

Uno stato si dice sicuro per n processi se esiste almeno una sequenza sicura, ossia una sequenza di n processi per cui le richieste di ogni processi Pi della sequenza, possono essere soddisfatte con le risorse attualmente disponibili piú delle detenute dai processi Pj.

Se non esiste tale sequenza, si dice non sicuro.

Istanze singole delle risorse