Differenza tra deadlock e fame nel sistema operativo

Autore: Laura McKinney
Data Della Creazione: 3 Aprile 2021
Data Di Aggiornamento: 23 Aprile 2024
Anonim
Semafori (part 1)
Video: Semafori (part 1)

Contenuto


Deadlock e Starvation sono entrambi le condizioni in cui i processi che richiedono una risorsa sono stati ritardati a lungo. Sebbene deadlock e fame siano entrambi diversi l'uno dall'altro per molti aspetti. punto morto è una condizione in cui nessun processo procede per l'esecuzione e ciascuno attende risorse acquisite dagli altri processi. D'altra parte, dentro Fame, il processo con priorità elevate utilizza continuamente le risorse che impediscono il processo a priorità bassa per acquisire le risorse. Discutiamo alcune altre differenze tra deadlock e fame con l'aiuto della tabella di confronto mostrata di seguito.

  1. Tabella di comparazione
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Tabella di comparazione

Base per la comparazionepunto mortoFame
Di baseDeadlock è dove nessun processo procede e viene bloccato.La fame è dove i processi a bassa priorità vengono bloccati e procede il processo ad alta priorità.
Condizioni di insorgenzaIl verificarsi di mutua esclusione, attesa e attesa, nessuna prelazione e attesa circolare contemporaneamente.Applicazione delle priorità, gestione incontrollata delle risorse.
Altro nomeAttesa circolare.Lifelock.
risorseIn deadlock, le risorse richieste sono bloccate dagli altri processi.Inedia, le risorse richieste vengono continuamente utilizzate da processi ad alta priorità.
PrevenzioneEvitare l'esclusione reciproca, attesa e attesa e attesa circolare e consentire la prelazione. Invecchiamento.


Definizione di Deadlock

Deadlock è una situazione in cui i diversi processi nella CPU competono per il numero finito di risorse disponibili all'interno della CPU. Qui, ogni processo contiene una risorsa e aspetta di acquisire una risorsa che è trattenuta da qualche altro processo. Tutti i processi attendono le risorse in modo circolare. Nell'immagine seguente, si può vedere che il processo P1 ha acquisito la risorsa R2 richiesta dal processo P2 e che il processo P1 richiede la risorsa R1 che è di nuovo trattenuta da R2. Quindi i processi P1 e P2 formano un deadlock.

Il deadlock è un problema comune nei sistemi operativi multiprocessore, nei sistemi distribuiti e anche nei sistemi di elaborazione paralleli. Esistono quattro condizioni che devono verificarsi contemporaneamente per aumentare la condizione di deadlock, che sono esclusione reciproca, sospensione e attesa, nessuna prelazione e attesa circolare.


  • Esclusione reciproca: Solo un processo alla volta può utilizzare una risorsa se un altro processo richiede la stessa risorsa, deve attendere fino a quando il processo che utilizza la risorsa la rilascia.
  • Tenere premuto e attendere: Un processo deve essere in possesso di una risorsa e in attesa di acquisire un'altra risorsa detenuta da un altro processo.
  • Nessuna prevenzione: Il processo che contiene le risorse non può essere anticipato. Il processo che contiene la risorsa deve rilasciare la risorsa volontariamente quando ha completato il suo compito.
  • Attesa circolare: Il processo deve attendere le risorse in modo circolare. Supponiamo di avere tre processi {P0, P1, P2}. P0 deve attendere la risorsa detenuta da P1; P1 deve attendere per acquisire la risorsa detenuta dal processo P2 e P2 deve attendere per acquisire il processo detenuto da P0.

Sebbene ci siano alcune applicazioni in grado di rilevare i programmi che potrebbero essere bloccati. Ma il sistema operativo non è mai responsabile della prevenzione dei deadlock. È responsabilità dei programmatori progettare programmi senza deadlock. Può essere fatto evitando le condizioni di cui sopra che sono necessarie per il verificarsi di deadlock

Definizione di fame

La fame può essere definita come quando una richiesta di processo per una risorsa e quella risorsa è stata continuamente utilizzata dagli altri processi, il processo richiedente deve affrontare la fame. Inedia, un processo pronto per l'esecuzione attende che la CPU assegni la risorsa. Ma il processo deve attendere indefinitamente poiché gli altri processi bloccano continuamente le risorse richieste.

Il problema della fame generalmente si verifica in algoritmo di pianificazione prioritaria. Nell'algoritmo di pianificazione delle priorità, al processo con priorità più alta viene sempre allocata la risorsa, impedendo al processo con priorità inferiore di ottenere la risorsa richiesta.

Invecchiamento può risolvere il problema della fame. L'invecchiamento aumenta gradualmente la priorità del processo che ha atteso a lungo le risorse. L'invecchiamento impedisce a un processo con priorità bassa di attendere indefinitamente una risorsa.

  1. In un deadlock, nessuno dei processi procede per l'esecuzione, ogni processo viene bloccato in attesa delle risorse acquisite da un altro processo. D'altra parte, la fame è una condizione in cui i processi che hanno una priorità più alta sono autorizzati ad acquisire continuamente le risorse impedendo ai processi a bassa priorità di acquisire risorse con conseguente blocco indefinito di processi a bassa priorità.
  2. Deadlock si presenta quando quattro condizioni Esclusione reciproca, attesa e attesa, nessuna prelazione e attesa circolare si verifica contemporaneamente. Tuttavia, la fame si verifica durante il processo le priorità sono state applicate durante l'allocazione delle risorse o la gestione delle risorse incontrollata nel sistema.
  3. Deadlock è spesso chiamato con il nome attesa circolare mentre si chiama la fame Blocco vissuto.
  4. In Deadlock le risorse sono bloccate dal processo mentre, per fame, i processi vengono continuamente utilizzati dai processi con priorità elevate.
  5. Il deadlock può essere evitato evitando le condizioni come l'esclusione reciproca, Hold and wait, e wait circolare e consentendo la prevenzione dei processi che trattengono risorse da molto tempo. D'altra parte, la fame può essere prevenuta da invecchiamento.

Conclusione:

Sia Deadlock che Starvation ritardano l'esecuzione del processo bloccandola. Da un lato dove il deadlock può far morire di fame i processi, e dall'altro la fame può far uscire i processi dal deadlock.