Differenza tra deadlock e fame

Deadlock vs fame
 

La principale differenza tra deadlock e fame è la relazione causa-effetto tra di loro; è la situazione di stallo che causa la fame. Un'altra interessante differenza tra deadlock e fame è che il deadlock è un problema, mentre la fame può, a volte, aiutare a uscire da un punto morto. Nel mondo dei computer, quando si scrive un programma per computer, ci saranno più processi / thread che verranno eseguiti simultaneamente uno dopo l'altro per soddisfare il servizio richiesto al programma. Pertanto, per avere un sistema equo, il programmatore dovrebbe assicurarsi che tutti i processi / thread ricevano o abbiano accesso sufficiente alle risorse di cui hanno bisogno. Altrimenti, ci sarà una situazione di stallo e in seguito porterà alla fame. In generale, un sistema equo non contiene deadlock o fame. Deadlock e fame avvengono principalmente quando molti thread competono per risorse limitate.

Cos'è Deadlock?

Una situazione di stallo è una condizione che si verifica quando due thread o processi si attendono reciprocamente per completare l'attività. Riattacceranno ma non smetteranno mai di terminare il loro compito. Nell'informatica, i deadlock possono essere visti ovunque. In un database di transazioni, quando due processi all'interno della propria transazione aggiornano le stesse due righe di informazioni ma nell'ordine opposto, causeranno un deadlock. Nella programmazione concorrente può verificarsi un deadlock quando due azioni concorrenti si attendono l'un l'altra per procedere in avanti. Nei sistemi di telecomunicazione, può verificarsi un deadlock a causa della perdita o della corruzione dei segnali.

Allo stato attuale, il deadlock è uno dei problemi principali nei sistemi multiprocessing e nel calcolo parallelo. Come soluzione, un sistema di chiusura chiamato processo di sincronizzazione è implementato per software e hardware.

Cos'è Starvation?

Dal dizionario della scienza medica, la fame è il risultato di una mancanza grave o totale di nutrienti che sono necessari per il mantenimento della vita. Allo stesso modo, nell'informatica, la fame è un problema che si incontra quando più thread o processi attendono la stessa risorsa, che è chiamata deadlock.

Per uscire da un deadlock, uno dei processi o dei thread dovrebbe dover rinunciare o eseguire il rollback in modo che l'altro thread o processo possa utilizzare la risorsa. Se questo si verifica continuamente e lo stesso processo o thread deve rinunciare o eseguire il rollback ogni volta consentendo ad altri processi o thread di utilizzare la risorsa, il processo o il thread selezionato, che viene eseguito il rollback, subirà una situazione chiamata inedia. Perciò, per uscire da un punto morto, la fame è una delle soluzioni. Pertanto, a volte viene chiamato inedia una specie di livelock. Quando ci sono molti processi o thread ad alta priorità, un processo o thread con priorità più bassa morirà sempre di fame.

Possono esserci molte carestie come affamato di risorse e affamato sulla CPU. Ci sono molti esempi comuni sulla fame. Loro sono il problema dei lettori e dei filosofi della ristorazione, che è più famoso. Ci sono cinque filosofi silenti seduti a una tavola rotonda con ciotole di spaghetti. Le forcelle sono poste tra ogni coppia di filosofi adiacenti. Ogni filosofo deve alternativamente pensare e mangiare. Tuttavia, un filosofo può mangiare solo spaghetti quando ha sia forchette sinistra che destra.

I "ristoranti filosofi"

Qual è la differenza tra Deadlock e Starvation?

• Processi:

• In caso di deadlock, i due thread o processi si attendono reciprocamente ed entrambi non procedono in avanti.

• In digiuno, quando due o più thread o processi attendono la stessa risorsa, uno si arresta e lascia che gli altri utilizzino la risorsa prima e il thread o il processo affamato riproverà. Pertanto, tutti i thread o processi procederanno comunque in avanti.

• Rotolando indietro:

• In un deadlock, sia thread / processi ad alta priorità, sia thread / processi a bassa priorità, si attendono l'un l'altro all'infinito. Non finisce mai.

• Ma, in caso di inedia, quelli a bassa priorità attenderanno o torneranno indietro, ma quelli ad alta priorità procederanno.

• Attesa o blocco:

• Un deadlock è un'attesa circolare.

• Una fame è una specie di livelock e talvolta aiuta a uscire da un punto morto.

• Deadlock e Starvation:

• Un deadlock provoca la fame, ma la fame non causa un deadlock.

• Cause:

• Si verificherà un deadlock a causa dell'esclusione reciproca, attesa e attesa, senza prelazione o attesa circolare.

• La fame si verifica a causa della scarsità di risorse, della gestione incontrollata delle risorse e delle priorità del processo.

Sommario:

Deadlock vs. fame

Deadlock e fame sono alcuni dei problemi che si verificano a causa di gare di dati e condizioni di gara che si verificano durante la programmazione e l'hardware di implementazione. In un deadlock, due thread si attendono infinitamente l'uno con l'altro senza eseguire l'esecuzione mentre, in una situazione di inattività, un thread si arrotola e lascia che l'altro thread utilizzi le risorse. Un deadlock causerà fame, mentre la fame aiuterà un thread a uscire da un punto morto.

Immagini per gentile concessione:

  1. Computer di Steve Jurvetson da Menlo Park, USA (CC BY 2.0)
  2. I "ristoranti filosofi" di Bdesham (CC BY-SA 3.0)