Differenza Tra Deadlock E Fame

Sommario:

Differenza Tra Deadlock E Fame
Differenza Tra Deadlock E Fame

Video: Differenza Tra Deadlock E Fame

Video: Differenza Tra Deadlock E Fame
Video: La coscienza è uno strumento del diavolo 2024, Novembre
Anonim

Deadlock vs Starvation

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

Cos'è Deadlock?

Un deadlock è una condizione che si verifica quando due thread o processi si attendono a vicenda per completare l'attività. Riattacceranno ma non interromperanno né finiranno mai il loro compito. In informatica, i deadlock possono essere visti ovunque. In un database delle transazioni, quando due processi all'interno della propria transazione aggiornano le stesse due righe di informazioni ma nell'ordine opposto, si verificherà un deadlock. Nella programmazione simultanea, può verificarsi un deadlock quando due azioni concorrenti si attenderanno a vicenda per procedere. Nei sistemi di telecomunicazione, può verificarsi un deadlock dovuto alla perdita o al danneggiamento dei segnali.

Attualmente, il deadlock è uno dei problemi principali nei sistemi multiprocessing e nel calcolo parallelo. Come soluzione, viene implementato un sistema di chiusura chiamato sincronizzazione del processo sia per il software che per l'hardware.

Differenza tra deadlock e fame
Differenza tra deadlock e fame

Cos'è la fame?

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

Per uscire da un deadlock, uno dei processi o thread dovrebbe rinunciare o eseguire il rollback in modo che l'altro thread o processo possa utilizzare la risorsa. Se ciò accade 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 thread selezionato, che è stato ripristinato, subirà una situazione chiamata fame. Pertanto, per uscire da una situazione di stallo, la fame è una delle soluzioni. Pertanto, a volte la fame è chiamata una specie di livelock. Quando sono presenti molti processi o thread ad alta priorità, un processo o un thread con priorità più bassa morirà sempre di fame in un deadlock.

Ci possono essere molte fame come fame di risorse e fame di CPU. Ci sono molti esempi comuni sulla fame. Sono il problema dei lettori-scrittori e il problema dei filosofi da pranzo, che è più famoso. Ci sono cinque filosofi silenziosi seduti a una tavola rotonda con ciotole di spaghetti. Le forchette sono poste tra ogni coppia di filosofi adiacenti. Ogni filosofo deve alternativamente pensare e mangiare. Tuttavia, un filosofo può mangiare gli spaghetti solo quando ha sia la forchetta sinistra che quella destra.

Deadlock vs Starvation
Deadlock vs Starvation

I "filosofi a tavola"

Qual è la differenza tra Deadlock e Starvation?

• Processi:

• In deadlock, i due thread o processi attenderanno l'uno per l'altro ed entrambi non procederanno in avanti.

• In caso di fame, quando due o più thread o processi attendono la stessa risorsa, uno eseguirà il rollback e consentirà agli altri di utilizzare prima la risorsa e successivamente il thread o processo affamato riproverà. Pertanto, tutti i thread o processi procederanno comunque in avanti.

• Rotolando indietro:

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

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

• In attesa o blocco:

• Un deadlock è un'attesa circolare.

• La fame è una specie di blocco vitale e talvolta aiuta a uscire da una situazione di stallo.

• Deadlock e fame:

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

• Cause:

• Si verificherà un deadlock a causa di mutua esclusione, attesa e attesa, nessuna prelazione o attesa circolare.

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

Sommario:

Deadlock vs Starvation

Deadlock e fame sono alcuni dei problemi che si verificano a causa di gare di dati e condizioni di competizione che si verificano durante la programmazione e l'implementazione dell'hardware. In un deadlock, due thread si attenderanno all'infinito l'uno per l'altro senza essere eseguiti mentre, in caso di fame, un thread eseguirà il rollback e consentirà all'altro thread di utilizzare le risorse. Un deadlock causerà la fame mentre la fame aiuterà un thread a uscire da un deadlock.

Immagini per gentile concessione:

  1. Computer di Steve Jurvetson da Menlo Park, USA (CC BY 2.0)
  2. The "Dining Philosophers" di Bdesham (CC BY-SA 3.0)

Raccomandato: