Impas împotriva Inaniției
Principala diferență dintre impas și infometare este relația cauză-efect dintre ele; impasul este cel care provoacă foamete. O altă diferență interesantă între impas și foamete este că impasul este o problemă, în timp ce foamea poate, uneori, ajuta la ieșirea dintr-un impas. În lumea computerelor, atunci când scrieți un program de computer, vor exista mai multe procese / fire care vor rula simultan unul după altul pentru a îndeplini serviciul necesar pentru program. Prin urmare, pentru a avea un sistem corect, programatorul ar trebui să se asigure că toate procesele / firele vor primi sau vor avea acces suficient la resursele de care au nevoie. Dacă nu, va exista un impas și va duce la înfometare mai târziu. În general, un sistem echitabil nu conține blocaje sau foamete. Blocajele și foametea vor apărea în principal atunci când multe fire concurează pentru resurse limitate.
Ce este Deadlock?
Un blocaj este o condiție care apare atunci când două fire sau procese se așteaptă reciproc pentru a finaliza sarcina. Vor închide doar dar nu vor opri sau termina niciodată sarcina lor. În informatică, blocajele pot fi văzute peste tot. Într-o bază de date de tranzacții, atunci când două procese fiecare în cadrul propriei tranzacții actualizează aceleași două rânduri de informații, dar în ordinea opusă, va cauza un blocaj. În programarea concurentă, un impas poate apărea atunci când două acțiuni concurente se vor aștepta una pentru cealaltă pentru a continua înainte. În sistemele de telecomunicații, un impas poate avea loc din cauza pierderii sau corupției semnalelor.
În prezent, impasul este una dintre principalele probleme în sistemele multiprocesare și în calculul paralel. Ca soluție, un sistem de blocare numit sincronizare de proces este implementat atât pentru software cât și pentru hardware.
Ce este Înfometarea?
Din dicționarul de științe medicale, foamea este rezultatul lipsei severe sau totale de substanțe nutritive necesare pentru menținerea vieții. În mod similar, în informatică, foamea este o problemă care se întâlnește atunci când mai multe fire sau procese așteaptă aceeași resursă, care se numește blocaj.
Pentru a ieși dintr-un impas, unul dintre procese sau fire ar trebui să renunțe sau să se retragă pentru ca celălalt fir sau proces să poată utiliza resursa. Dacă acest lucru se întâmplă în mod continuu și același proces sau fir trebuie să renunțe sau să se retragă de fiecare dată, lăsând alte procese sau fire să utilizeze resursa, atunci procesul sau firul selectat, care a revenit, va suferi o situație numită foamete. Prin urmare, pentru a ieși dintr-un impas, foamea este una dintre soluții. Prin urmare, uneori foamea este numită un fel de blocaj. Când există multe procese sau fire cu prioritate ridicată, un proces sau fir cu prioritate mai mică va muri mereu de foame într-un blocaj.
Pot exista multe înfometări, cum ar fi înfometarea resurselor și înfometarea procesorului. Există multe exemple comune despre foamete. Sunt problema cititorilor-scriitori și a filozofilor culinarilor, care este mai faimoasă. Există cinci filozofi tăcuți care stau la o masă rotundă cu boluri de spaghete. Furcile sunt plasate între fiecare pereche de filozofi adiacenți. Fiecare filosof trebuie să gândească și să mănânce alternativ. Cu toate acestea, un filozof poate mânca spaghete numai atunci când are atât furci stânga, cât și dreapta.
„Filozofii culinari”
Care este diferența dintre Blocaj și Înfometare?
• Proces:
• În impas, cele două fire sau procese se vor aștepta reciproc și ambele nu continuă înainte.
• În foamete, când două sau mai multe fire sau procese așteaptă aceeași resursă, unul va reveni și îi va lăsa pe ceilalți să utilizeze resursa mai întâi, iar apoi firul sau procesul înfometat va încerca din nou. Prin urmare, toate firele sau procesele vor continua oricum.
• Revenire:
• Într-un blocaj, atât firele / procesele cu prioritate ridicată, cât și firele / procesele cu prioritate redusă, se vor aștepta unul la celălalt la infinit. Nu se termină niciodată.
• Dar, într-o foamete, cele cu prioritate scăzută vor aștepta sau vor reveni, dar vor continua cele cu prioritate ridicată.
• În așteptare sau blocare:
• Un blocaj este o așteptare circulară.
• O foame este un fel de blocaj și uneori ajută la ieșirea dintr-un impas.
• Impas și înfometare:
• Un impas provoacă foamete, dar foametea nu provoacă un impas.
• Cauze:
• Se va produce un impas din cauza excluderii reciproce, așteptării și a așteptării, a nicio preempțiune sau a așteptării circulare.
• Înfometarea are loc din cauza deficitului de resurse, a gestionării necontrolate a resurselor și a priorităților procesului.
Rezumat:
Impas împotriva Inaniției
Impasul și foametea sunt câteva dintre problemele care apar din cauza curselor de date și a condițiilor de cursă care apar în timpul programării, precum și implementarea hardware-ului. Într-un blocaj, două fire se vor aștepta infinit unul pe celălalt fără a se executa în timp ce, într-o foamete, un fir se va întoarce înapoi și va lăsa celălalt fir să utilizeze resursele. Un impas va provoca foamete, în timp ce foamea va ajuta un fir să iasă dintr-un impas.
Imagini Amabilitate:
- Computer de Steve Jurvetson din Menlo Park, SUA (CC BY 2.0)
- „Filozofii culinari” de Bdesham (CC BY-SA 3.0)