Deadlock vs inanició
La principal diferència entre l'impasse i la fam és la relació causa-efecte entre ells; és un punt mort el que provoca la fam. Una altra diferència interessant entre el bloqueig i la fam és que el bloqueig és un problema, mentre que la fam pot, de vegades, ajudar a sortir d'un punt mort. En el món informàtic, en escriure un programa informàtic hi haurà més d'un procés/fil que s'executarà simultàniament un darrere l' altre per tal de complir el servei requerit per al programa. Per tant, per tenir un sistema just, el programador hauria d'assegurar-se que tots els processos/fils rebin o tindran prou accés als recursos que necessiten. Si no és així, hi haurà un punt mort, i més endavant portarà a una inanició. En general, un sistema just no conté cap punt mort o fam. Els bloquejos i la fam es produiran principalment quan molts fils competeixen per recursos limitats.
Què és Deadlock?
Un bloqueig és una condició que es produeix quan dos fils o processos esperen que finalitzin la tasca. Només penjaran però mai s'aturaran ni acabaran la seva tasca. En informàtica, els bloquejos es poden veure a tot arreu. En una base de dades de transaccions, quan dos processos, cadascun dins de la seva pròpia transacció, actualitzen les mateixes dues files d'informació però en l'ordre contrari, provocarà un bloqueig. En la programació simultània, es pot produir un bloqueig quan dues accions en competència s'esperin l'una a l' altra per avançar. Als sistemes de telecomunicacions, es pot produir un bloqueig a causa de la pèrdua o la corrupció dels senyals.
En l'actualitat, el bloqueig és un dels principals problemes dels sistemes de multiprocessament i la informàtica paral·lela. Com a solució, s'implementa un sistema de bloqueig anomenat sincronització de processos tant per al programari com per al maquinari.
Què és la fam?
Del diccionari de la ciència mèdica, la fam és el resultat de la manca severa o total de nutrients que són necessaris per al manteniment de la vida. De la mateixa manera, en informàtica, la fam és un problema que es troba quan diversos fils o processos esperen el mateix recurs, que s'anomena bloqueig.
Per sortir d'un bloqueig, un dels processos o fils hauria de renunciar o retrocedir perquè l' altre fil o procés pugui utilitzar el recurs. Si això succeeix contínuament i el mateix procés o fil ha de renunciar o retrocedir cada vegada mentre deixa que altres processos o fils utilitzin el recurs, aleshores el procés o fil seleccionat, que es va retrocedir, patirà una situació anomenada inanició. Per tant, per sortir d'un punt mort, la fam és una de les solucions. Per tant, de vegades, la fam s'anomena una mena de res. Quan hi ha molts processos o fils d' alta prioritat, un procés o fil de prioritat més baixa sempre es quedarà en un punt mort.
Pot haver-hi moltes inanicions, com ara morir-se de gana amb recursos i morir-se de gana amb la CPU. Hi ha molts exemples comuns sobre la fam. Són el problema dels lectors-escriptors i el problema dels filòsofs de menjador, que és més famós. Hi ha cinc filòsofs silenciosos asseguts a una taula rodona amb bols d'espaguetis. Les forquilles es col·loquen entre cada parell de filòsofs adjacents. Cada filòsof ha de pensar i menjar alternativament. Tanmateix, un filòsof només pot menjar espaguetis quan té la forquilla dreta i l'esquerra.
Els "filòsofs de menjador"
Quina diferència hi ha entre Deadlock i Starvation?
Procés:
• En cas de bloqueig, els dos fils o processos s'esperaran i tots dos no avancen.
• En cas d'inanició, quan dos o més fils o processos esperen el mateix recurs, un tornarà enrere i deixarà que els altres utilitzin el recurs primer i, a continuació, el fil o procés morint ho intentarà de nou. Per tant, tots els fils o processos seguiran endavant.
Retrocés:
• En un punt mort, tant els fils/processos d' alta prioritat com els de baixa prioritat s'esperaran infinitament. No s'acaba mai.
• Però, en una inanició, els de prioritat baixa esperaran o retrocediran, però els de prioritat alta continuaran.
En espera o bloqueig:
• Un bloqueig és una espera circular.
• La fam és una mena de bloqueig i, de vegades, ajuda a sortir d'un punt mort.
Bloc i fam:
• Un bloqueig provoca la fam, però la fam no provoca un bloqueig.
Causes:
• Es produirà un bloqueig a causa de l'exclusió mútua, espera i espera, sense preempció ni espera circular.
• La fam es produeix a causa de l'escassetat de recursos, la gestió incontrolada dels recursos i les prioritats dels processos.
Resum:
Deadlock vs. fam
El bloqueig i la fam són alguns dels problemes que es produeixen a causa de les curses de dades i les condicions de carrera que es produeixen durant la programació i la implementació del maquinari. En un punt mort, dos fils s'esperaran infinitament sense executar-se, mentre que, en una inanició, un fil tornarà enrere i permetrà que l' altre fil utilitzi els recursos. Un bloqueig provocarà la fam, mentre que la fam ajudarà un fil a sortir d'un bloqueig.