Differenza tra Deadlock e Starvation | Deadlock vs Starvation

Anonim

Deadlock vs Starvation

La differenza principale tra il deadlock e la fame è la relazione causa-effetto tra loro; è un deadlock che provoca fame. Un'altra differenza interessante tra il morto e la fame è che il blocco è un problema, mentre la fame può, a volte, contribuire a uscire da un blocco. Nel mondo del computer, quando si scrive un programma di computer, ci saranno più di un processo / thread che si eseguiranno contemporaneamente uno dopo l'altro per soddisfare il servizio richiesto al programma. Pertanto, per avere un sistema equo, il programmatore dovrà assicurarsi che tutti i processi / thread riceveranno o abbiano abbastanza accesso alle risorse necessarie. In caso contrario, ci sarà un deadlock, che porterà ad una fame più tardi. In generale, un sistema equo non contiene eventuali deadlock o fame. I deadlock e le fame si verificano soprattutto quando molti thread stanno competendo per risorse limitate.

Che cosa è Deadlock?

Un deadlock è una condizione che si verifica quando due thread o processi attendono l'uno all'altro per completare l'operazione . Appenderanno solo in su ma non fermano mai o finiscono il loro compito. Nelle scienze informatiche, gli ostacoli possono essere visti ovunque. In un database di transazioni, quando due processi, ciascuno nella propria transazione, aggiornano le stesse due file di informazioni, ma nell'ordine opposto, provocherà un deadlock. Nella programmazione concorrente, si può verificare un blocco quando due azioni concorrenti si aspettano l'un l'altro per procedere in avanti. Nei sistemi di telecomunicazione, un blocco può verificarsi a causa della perdita o della corruzione dei segnali.

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

Che cosa è Starvation?

Dal dizionario della scienza medica, la fame è il risultato di una grave o totale mancanza di sostanze nutritive necessarie per il mantenimento della vita. Allo stesso modo, nella scienza dell'informazione, la fame è un problema che si è verificato quando più thread o processi attendono la stessa risorsa, che si chiama deadlock .

Per uscire da un deadlock, uno dei processi o thread dovrebbe dover rinunciare o riavviare in modo che l'altro thread o processo possa utilizzare la risorsa. Se questo avviene continuamente e lo stesso processo o thread devono rinunciare o riavvolgere ogni volta, lasciando altri processi o fili per utilizzare la risorsa, allora il processo o il thread selezionati, che si riavvolge, subiranno una situazione chiamata starvation.Pertanto, per uscire da un deadlock, la fame è una delle soluzioni . Pertanto, a volte la fame è chiamata una sorta di un livellamento . Quando ci sono molti processi o filamenti ad alta priorità, un processo o un thread di priorità inferiore avrà sempre fame in un deadlock.

Ci possono essere molte fame come affamando le risorse e affamando sulla CPU . Ci sono molti esempi comuni sulla fame. Sono problemi di scrittori e problemi di filosofia, che è più famoso. Ci sono cinque filosofi silenziosi seduti a un tavolo rotondo con ciotole di spaghetti. Le forchette sono collocate tra ogni coppia di filosofi adiacenti. Ogni filosofo deve alternativamente pensare e mangiare. Tuttavia, un filosofo può mangiare solo spaghetti quando ha forme a sinistra ea destra.

I "Filosofi di pranzo"

Qual è la differenza tra Deadlock e Starvation?

• Process:

• In deadlock, i due thread oi processi si aspettano l'uno all'altro e entrambi non procedono in avanti.

• In fame, quando due o più thread o processi attendono la stessa risorsa, si ritorna e gli altri utilizzeranno la risorsa prima e successivamente il thread o il processo di fame provano di nuovo. Di conseguenza, tutti i thread oi processi procederanno in ogni modo.

• Rolling Back:

• In un deadlock, entrambi i thread / processi ad alta priorità, così come i thread / processi a bassa priorità, si aspettano l'un l'altro infinitamente. Non finisce mai.

• Ma, in una fame, quelli a bassa priorità aspettano o riavvolgeranno, ma avanzano quelli prioritari.

• Attesa o blocco:

• Un deadlock è un'attesa circolare.

• La fame è una specie di anima e talvolta aiuta a uscire da un deadlock.

• Deadlock e Starvation:

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

• Cause:

• Un errore di blocco si verificherà a causa dell'esclusione reciproca, del mantenimento e dell'attesa, nessuna preemption o attesa circolare.

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

Sommario:

Deadlock e Starvation

I deadlock e le fame sono alcuni dei problemi che si verificano a causa delle gare di dati e delle condizioni di gara che si verificano durante la programmazione e l'implementazione dell'hardware. In un deadlock, due thread infinitamente attenderanno l'uno all'altro senza eseguire mentre, in una fame, un thread si ritorna e lascia che l'altro thread utilizzi le risorse. Un deadlock causerà la fame mentre la fame lo aiuterà ad un thread per uscire da un deadlock.

Immagini per gentile concessione:

  1. Computer di Steve Jurvetson di Menlo Park, USA (CC BY 2. 0)
  2. I "Filosofi da pranzo" di Bdesham (CC BY-SA 3. 0)