Razlika med brezizhodnostjo in stradanjem

Kazalo:

Razlika med brezizhodnostjo in stradanjem
Razlika med brezizhodnostjo in stradanjem

Video: Razlika med brezizhodnostjo in stradanjem

Video: Razlika med brezizhodnostjo in stradanjem
Video: «Банши Инишерина» - о чём фильм и почему его нужно посмотреть. 2024, November
Anonim

Deadlock vs Starvation

Glavna razlika med brezizhodnostjo in stradanjem je vzročno-posledično razmerje med njima; je slepa ulica tista, ki povzroča lakoto. Druga zanimiva razlika med mrtvo točko in stradanjem je ta, da je slepa ulica težava, medtem ko stradanje lahko včasih pomaga rešiti se iz mrtve točke. V računalniškem svetu bo pri pisanju računalniškega programa obstajal več kot en proces/nit, ki se bodo sočasno izvajali drug za drugim, da bi izpolnili zahtevano storitev za program. Da bi torej imel pošten sistem, mora programer zagotoviti, da bodo vsi procesi/niti prejeli ali dobili dovolj dostopa do virov, ki jih potrebujejo. V nasprotnem primeru bo prišlo do slepe ulice, ki bo kasneje povzročila lakoto. Pravičen sistem na splošno ne vsebuje nobenih zastojev ali stradanja. Do zastojev in izčrpanosti pride predvsem takrat, ko veliko niti tekmuje za omejene vire.

Kaj je Deadlock?

Zastoj je stanje, ki se pojavi, ko dve niti ali procesa čakata drug na drugega, da dokončata nalogo. Samo odložijo slušalko, vendar se nikoli ne ustavijo ali dokončajo svoje naloge. V računalništvu so zastoji vidni povsod. V transakcijski zbirki podatkov, ko dva procesa vsak znotraj svoje transakcije posodobita isti dve vrstici informacij, vendar v nasprotnem vrstnem redu, bo to povzročilo zastoj. Pri sočasnem programiranju lahko pride do zastoja, ko bosta dve konkurenčni dejanji čakali drug na drugega, da nadaljujeta naprej. V telekomunikacijskih sistemih lahko pride do zastoja zaradi izgube ali okvare signala.

Trenutno je zastoj eden glavnih problemov večprocesnih sistemov in vzporednega računalništva. Kot rešitev je za programsko in strojno opremo implementiran sistem zaklepanja, imenovan sinhronizacija procesov.

Razlika med mrtvo pozicijo in stradanjem
Razlika med mrtvo pozicijo in stradanjem
Razlika med mrtvo pozicijo in stradanjem
Razlika med mrtvo pozicijo in stradanjem

Kaj je stradanje?

Iz slovarja medicinske znanosti je stradanje posledica resnega ali popolnega pomanjkanja hranilnih snovi, ki so potrebna za vzdrževanje življenja. Podobno je v računalništvu stradanje težava, na katero naletimo, ko več niti ali procesov čaka na isti vir, kar imenujemo zastoj.

Da bi se rešili iz zastoja, bi se moral eden od procesov ali niti odpovedati ali vrniti nazaj, tako da lahko druga nit ali proces uporabi vir. Če se to nenehno dogaja in se mora isti proces ali nit vsakič odpovedati ali vrniti nazaj, medtem ko drugim procesom ali nitim dovoli uporabo vira, bo izbrani proces ali nit, ki je bila povrnjena nazaj, podvržen situaciji, imenovani stradanje. Zato je za izhod iz slepe ulice stradanje ena od rešitev. Zato včasih stradanje imenujemo nekakšna zapora. Če je veliko procesov ali niti z visoko prioriteto, bo proces ali nit z nižjo prioriteto vedno stradal v zastoju.

Lahko je veliko stradanja, na primer stradanje virov in stradanje procesorja. Obstaja veliko pogostih primerov stradanja. To sta problem bralcev in piscev in problem filozofov obedovanja, ki je bolj znan. Pet tihih filozofov sedi za okroglo mizo s skledami špagetov. Vilice so nameščene med vsak par sosednjih filozofov. Vsak filozof mora izmenično misliti in jesti. Vendar pa lahko filozof jé špagete le, če ima leve in desne vilice.

Zastoj proti stradanju
Zastoj proti stradanju
Zastoj proti stradanju
Zastoj proti stradanju

»Filozofi obedovanja«

Kakšna je razlika med Deadlock in Starvation?

Proces:

• V zastoju bosta dve niti ali procesa čakali drug na drugega in oba ne nadaljujeta naprej.

• V stanju stradanja, ko dve ali več niti ali procesov čaka na isti vir, se bo ena vrnila nazaj in pustila drugim, da najprej uporabijo vir, nato pa bo stradajoča nit ali proces poskusil znova. Zato bodo vse niti ali procesi vseeno nadaljevali.

Povratek nazaj:

• V zastoju bodo tako niti/procesi z visoko prioriteto kot tudi niti/procesi z nizko prioriteto neskončno čakali druga na drugo. Nikoli se ne konča.

• Toda med stradanjem bodo tisti z nizko prioriteto čakali ali se vrnili nazaj, tisti z visoko prioriteto pa bodo nadaljevali.

Čakanje ali zaklepanje:

• Zastoj je krožno čakanje.

• Stradanje je nekakšna zapora in včasih pomaga rešiti se iz slepe ulice.

Zastoj in stradanje:

• Zastoj povzroči stradanje, vendar stradanje ne povzroči zastoja.

Vzroki:

• Do zastoja bo prišlo zaradi medsebojne izključitve, zadrži in počakaj, brez prevzetja ali krožnega čakanja.

• Do stradanja pride zaradi pomanjkanja virov, nenadzorovanega upravljanja z viri in prioritet procesov.

Povzetek:

Zastoj proti stradanju

Zastoj in izčrpanosti so nekatere od težav, ki se pojavijo zaradi podatkovnih tekem in tekmovalnih pogojev, do katerih pride med programiranjem in implementacijo strojne opreme. V zastoju bosta dve niti neskončno čakali druga na drugo, ne da bi se izvršili, medtem ko se bo v stanju stradanja ena nit vrnila nazaj in pustila drugi niti, da uporabi vire. Zastoj bo povzročil stradanje, medtem ko bo stradanje pomagalo niti, da se reši iz zastoja.

Priporočena: