Raccomandato, 2024

Scelta Del Redattore

Differenza tra deadlock e fame nel SO

Deadlock e Starvation sono entrambe le condizioni in cui i processi che richiedono una risorsa sono stati ritardati di molto. Sebbene il deadlock e la fame siano entrambi diversi l'uno dall'altro in molti aspetti. Deadlock è una condizione in cui nessun processo procede per l'esecuzione e ciascuno attende risorse che sono state acquisite dagli altri processi. D'altra parte, in Starvation, il processo con priorità elevate utilizza continuamente le risorse che impediscono ai processi a bassa priorità di acquisire le risorse. Cerchiamo di discutere alcune più differenze tra deadlock e fame con l'aiuto del grafico di confronto mostrato di seguito.

Grafico comparativo

Base per la Comparsapunto mortoFame
Di baseDeadlock è dove nessun processo procede e viene bloccato.La fame è il luogo in cui i processi a bassa priorità vengono bloccati e il processo ad alta priorità procede.
Condizione di alzareL'occorrenza dell'esclusione reciproca, attesa e attesa, nessuna prelazione e attesa circolare contemporaneamente.Applicazione delle priorità, gestione incontrollata delle risorse.
Altro nomeAttesa circolareLifelock.
risorseIn deadlock, le risorse richieste sono bloccate dagli altri processi.In fame, le risorse richieste vengono continuamente utilizzate da processi ad alta priorità.
PrevenzioneEvitando l'esclusione reciproca, tieni premuto e attendi, e attendi circolari e consenti la prelazione.Invecchiamento.

Definizione di Deadlock

Deadlock è una situazione in cui i vari processi della 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 è detenuta da qualche altro processo. Tutti i processi attendono risorse in modo circolare. Nell'immagine sottostante, è possibile vedere che Process P1 ha acquisito la risorsa R2 richiesta dal processo P2 e che Process P1 sta richiedendo per la risorsa R1 che viene nuovamente trattenuta da R2. Quindi i processi P1 e P2 formano un deadlock.

Deadlock è un problema comune nei sistemi operativi multiprocessing, nei sistemi distribuiti e anche nei sistemi informatici paralleli. Ci sono quattro condizioni che devono verificarsi simultaneamente per elevare la condizione di deadlock, che sono l'esclusione reciproca, attesa 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 lo rilascia.
  • Hold and Wait: un processo deve essere in possesso di una risorsa e in attesa di acquisire un'altra risorsa che è detenuta da qualche altro processo.
  • Nessuna prelazione: il processo che detiene le risorse non può essere anticipato. Il processo che trattiene la risorsa deve liberare volontariamente la risorsa 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}. Il P0 deve attendere la risorsa detenuta da P1; P1 deve attendere per acquisire la risorsa trattenuta dal processo P2 e P2 deve attendere per acquisire il processo trattenuto da P0.

Sebbene ci siano alcune applicazioni in grado di rilevare i programmi che potrebbero diventare bloccati. Ma il sistema operativo non è mai responsabile per prevenire i 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 sono state continuamente utilizzate dagli altri processi, quindi il processo di richiesta va incontro alla fame. In carestia, un processo pronto per l'esecuzione attende che la CPU assegni la risorsa. Ma il processo deve attendere indefinitamente mentre gli altri processi bloccano continuamente le risorse richieste.

Il problema della fame si verifica generalmente nell'algoritmo di scheduling prioritario . Nell'algoritmo di pianificazione prioritaria, il processo con priorità più alta viene sempre assegnato alla risorsa, impedendo al processo con priorità più bassa di ottenere la risorsa richiesta.

L'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 per una risorsa.

Differenze chiave tra deadlock e Starvation nel sistema operativo

  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'altro canto, la fame è una condizione in cui i processi che possiedono una priorità più alta sono autorizzati ad acquisire le risorse continuamente impedendo ai processi a bassa priorità di acquisire risorse con conseguente blocco indefinito di processi a bassa priorità.
  2. La situazione di stallo si verifica quando quattro condizioni di esclusione reciproca, attesa e attesa, assenza di prelazione e attesa circolare avvengono simultaneamente. Tuttavia, l'inedia si verifica quando le priorità del processo sono state applicate durante l'allocazione delle risorse oppure esiste una gestione delle risorse incontrollata nel sistema.
  3. Deadlock è spesso chiamato con il nome di attesa circolare mentre, la fame è chiamata Lived lock .
  4. In Deadlock le risorse vengono bloccate dal processo mentre, in fame, i processi vengono continuamente utilizzati dai processi con priorità elevate.
  5. Il deadlock può essere prevenuto evitando condizioni come l'esclusione reciproca, attesa e attesa, attesa circolare e consentendo la prelazione dei processi che stanno trattenendo risorse per un lungo periodo. D'altra parte, la carestia può essere prevenuta invecchiando .

Conclusione:

Deadlock e Starvation ritardano l'esecuzione del processo bloccandolo. Da una parte, dove la situazione di stallo può far morire di fame i processi, e dall'altra parte la fame può far uscire i processi dall'impasse.

Top