Deadlock vs Starvation
La principale differenza tra deadlock e fame è la relazione di causa ed effetto tra loro; è una situazione di stallo che provoca la fame. Un' altra differenza interessante tra deadlock e fame è che lo stallo è un problema mentre la fame può, a volte, aiutare a uscire da una situazione di stallo. Nel mondo dei computer, quando si scrive un programma per computer ci sarà più di un processo/thread che verrà eseguito contemporaneamente 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 ottengano un accesso sufficiente alle risorse di cui hanno bisogno. In caso contrario, ci sarà un punto morto e in seguito porterà alla 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 aspettano l'un l' altro per completare l'attività. Riaggancieranno solo ma non smetteranno né finiranno mai il loro compito. In informatica, i deadlock possono essere visti ovunque. In un database delle transazioni, quando due processi, ciascuno 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 in competizione attenderanno l'una l' altra per procedere. Nei sistemi di telecomunicazioni, può verificarsi un deadlock a causa della perdita o del 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 dei processi sia per il software che per l'hardware.
Cos'è la fame?
Dal dizionario delle scienze mediche, la fame è il risultato di una grave o totale mancanza di nutrienti necessari per il mantenimento della vita. Allo stesso modo, in informatica, la fame è un problema che si incontra quando più thread o processi aspettano la stessa risorsa, che è chiamato deadlock.
Per uscire da un deadlock, uno dei processi o thread dovrebbe rinunciare o tornare indietro 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, di cui è stato eseguito il rollback, 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 ci sono 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 carestie come la fame di risorse e la 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 scodelle 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 la forchetta sia sinistra che destra.
I “filosofi gastronomici”
Qual è la differenza tra Deadlock e Starvation?
Processo:
• In deadlock, i due thread o processi si aspetteranno l'un l' altro ed entrambi non andranno avanti.
• In 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 poi il thread o il processo affamato tenterà di nuovo. Pertanto, tutti i thread o i processi continueranno comunque.
Tornare indietro:
• In un deadlock, sia i thread/processi ad alta priorità, sia i thread/processi a bassa priorità, si aspetteranno l'un l' altro all'infinito. Non finisce mai.
• Ma, in caso di fame, quelli a bassa priorità aspetteranno o torneranno indietro, ma quelli ad alta priorità procederanno.
Attesa o Blocca:
• Un deadlock è un'attesa circolare.
• Una fame è una specie di livelock e talvolta aiuta a uscire da una situazione di stallo.
Deadlock e fame:
• Una situazione di stallo provoca la fame, ma la fame non causa una situazione di stallo.
Cause:
• Si verificherà un deadlock dovuto all'esclusione reciproca, 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.
Riepilogo:
Deadlock vs. fame
Deadlock e 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 si aspetteranno all'infinito 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.