Differenza chiave: deadlock si riferisce alla situazione in cui i processi sono bloccati in attesa di risorse circolari. D'altra parte, l'inedia si verifica quando un processo attende una risorsa per un tempo indefinito. Deadlock implica la fame, ma la fame non implica un deadlock.
Un semplice esempio di questo è un sistema con due unità nastro e due processi ciascuno occupa un'unità a nastro e in attesa dell'altro come requisito per procedere ulteriormente.
È importante ricordare che la situazione di deadlock occus se queste quattro condizioni sono valide tutte contemporaneamente -
- Esclusione reciproca: una risorsa può essere utilizzata solo da un processo alla volta
- Aspetta e aspetta - un processo che occupa almeno una risorsa deve acquisire una risorsa aggiuntiva che è occupata da qualche altro processo, e quindi questo processo è in attesa che quella risorsa venga rilasciata
- Nessuna prelazione: la risorsa viene liberata solo dal processo che l'ha occupata, dopo aver completato il suo compito.
- Attesa circolare: tutti i processi nei set sono in attesa di una risorsa detenuta da altri processi, che include anche l'ultimo processo nel set.
Succede come un processo di peggior priorità che i nevers ottengono la risorsa a causa di un flusso costante di processi con una priorità migliore di quella, e quindi il processo potrebbe dover attendere per sempre. La soluzione per affrontare la fame è assicurarsi che un manager indipendente debba gestire le allocazioni di risorse, assicurando che ogni processo ottenga la risorsa in un determinato momento. Selezioni o competizioni casuali e incontrollate devono essere evitate per prevenire la fame. Deadlock implica la fame, ma la fame non implica un deadlock.
Pertanto, il deadlock e la fame differiscono l'uno dall'altro. Deadlock si verifica quando nessuno dei processi nel set è in grado di andare avanti a causa dell'occupazione delle risorse richieste da parte di qualche altro processo. D'altra parte, la fame si verifica quando un processo attende un periodo indefinito di tempo per ottenere la risorsa richiesta.
Confronto tra Deadlock e Starvation:
punto morto | Fame | |
Definizione | Deadlock si verifica quando nessuno dei processi nel set è in grado di andare avanti a causa dell'occupazione delle risorse richieste da parte di qualche altro processo | La fame si verifica quando un processo attende un intervallo di tempo indefinito per ottenere la risorsa richiesta. |
Altro nome | Attesa circolare | Blocco vivo |
Condizioni di sollevamento | Queste quattro condizioni che sorgono simultaneamente - mutua esclusione, attesa e attesa, non-prelazione e spirito circolare | Gestione incontrollata delle risorse Le priorità del processo sono rigorosamente applicate Scarsità di risorse |
Tecniche di prevenzione / prevenzione |
|
|
Progresso | Nessun processo può fare progressi | Oltre al processo della vittima, altri processi possono progredire o procedere |
fine | Richiede un intervento esterno | Può o non può richiedere un intervento esterno |