Rozdiel medzi zablokovaním a hladom

Deadlock vs hladovanie
 

Hlavným rozdielom medzi mŕtvym bodom a hladom je vzťah medzi nimi a príčinou; je to patová situácia, ktorá spôsobuje hladovanie. Ďalším zaujímavým rozdielom medzi zablokovaním a hladom je to, že uviaznutie je problém, zatiaľ čo hladovanie môže niekedy pomôcť dostať sa z mŕtveho bodu. Vo svete počítačov bude pri písaní počítačového programu existovať viac ako jeden proces / vlákno, ktoré bude súčasne bežať jeden po druhom, aby sa splnila požadovaná služba programu. Preto, aby bol program spravodlivý, mal by programátor zabezpečiť, aby všetky procesy / vlákna získali alebo mali dostatočný prístup k zdrojom, ktoré potrebujú. Ak nie, dôjde k zablokovaniu a neskôr k hladovaniu. Spravodlivý systém spravidla neobsahuje žiadne uviaznutia alebo hladovania. K uviaznutiu a hladovaniu dôjde najmä vtedy, keď mnoho vlákien súťaží o obmedzené zdroje.

Čo je Deadlock?

Zablokovanie je stav, ktorý nastane, keď dva vlákna alebo procesy čakajú na dokončenie úlohy. Budú len zavesiť, ale nikdy nezastavia ani nedokončia svoju úlohu. V oblasti informatiky je možné uviaznuť na mŕtvom bode všade. Ak v transakčnej databáze dva procesy aktualizujú rovnaké dva riadky informácií v rámci svojej vlastnej transakcie, ale v opačnom poradí, dôjde k zablokovaniu. Pri súbežnom programovaní môže dôjsť k zablokovaniu, keď sa budú čakať dve konkurenčné akcie, aby mohli pokračovať ďalej. V telekomunikačných systémoch môže dôjsť k zablokovaniu v dôsledku straty alebo poškodenia signálov.

V súčasnosti je patová situácia jedným z hlavných problémov vo viacprocesových systémoch a paralelnom výpočte. Ako riešenie sa nazýva uzamykací systém synchronizácia procesov je implementovaný pre softvér aj hardvér.

Čo je hladovanie?

Podľa slovníka lekárskej vedy je hladovanie dôsledkom vážneho alebo úplného nedostatku živín, ktoré sú potrebné na udržanie života. Podobne v počítačovej vede je hlad sa vyskytol problém keď viac vlákien alebo procesov čaká na ten istý prostriedok, ktorý sa nazýva zablokovanie.

Aby sa dostal z mŕtveho bodu, jeden z procesov alebo vlákien by sa mal vzdať alebo vrátiť späť, aby druhé vlákno alebo proces mohol použiť zdroj. Ak k tomu dôjde nepretržite a rovnaký proces alebo vlákno sa musí vzdať alebo vrátiť späť zakaždým, keď nechajú iné procesy alebo vlákna používať zdroj, potom vybraný proces alebo vlákno, ktoré sa vráti späť, prejde situáciou nazývanou hladovanie. teda, s cieľom dostať sa z mŕtveho bodu je jedným z riešení hlad. Preto sa niekedy hovorí hladovanie akýsi živý zámok. Ak existuje veľa procesov alebo vlákien s vysokou prioritou, proces alebo vlákno s nižšou prioritou bude vždy hladovať v mŕtvom bode.

Môže existovať veľa hladov hladovať zdroje a hladujúcich na CPU. Existuje veľa bežných príkladov hladovania. Sú to problém čitateľov a spisovateľov a problém filozofov stolovania, ktorý je slávnejší. Pri okrúhlom stole je päť tichých filozofov s miskami špagiet. Vidlice sú umiestnené medzi každým párom susedných filozofov. Každý filozof musí striedavo myslieť a jesť. Filozof však môže jesť špagety, iba ak má ľavú aj pravú vidlicu.

„Jedálni filozofi“

Aký je rozdiel medzi Deadlockom a hladom?

• Proces:

• V slepej uličke budú dve vlákna alebo procesy čakať jeden na druhého a obidva nepostupujú ďalej.

• V prípade hladovania, keď dve alebo viac vlákien alebo procesov čakajú na ten istý prostriedok, jeden sa vráti späť a ostatní ho nechajú použiť ako prvý a potom hladujúci vlákno alebo proces sa pokúsi znova. Preto všetky vlákna alebo procesy budú akýmkoľvek spôsobom napredovať.

• Návrat späť:

• V slepej uličke budú vlákna a procesy s vysokou prioritou, ako aj vlákna / procesy s nízkou prioritou, nekonečne čakať. To nikdy nekončí.

• Ale v prípade hladovania budú nízkorizikové čakať alebo sa vrátiť späť, ale tie s vysokou prioritou budú pokračovať.

• Čakanie alebo zámok:

• Zablokovanie je kruhové čakanie.

• Hladovanie je druh živého zámku a niekedy pomáha dostať sa z mŕtveho bodu.

• Deadlock a hladovanie:

• Zablokovanie spôsobí hladovanie, ale hladovanie nespôsobí zablokovanie.

• Príčiny:

• K zablokovaniu dôjde v dôsledku vzájomného vylúčenia, pozastavenia a čakania, bez predbežného alebo kruhového čakania.

• Hladovanie nastáva kvôli nedostatku zdrojov, nekontrolovanému riadeniu zdrojov a procesným prioritám.

Zhrnutie:

Deadlock vs. hladovanie

Deadlock a hladovanie sú niektoré z problémov, ktoré sa vyskytujú v dôsledku dátových závodov a rasových podmienok, ktoré sa vyskytujú počas programovania, ako aj pri implementácii hardvéru. V slepej uličke budú dva vlákna nekonečne čakať jeden na druhého bez vykonania, zatiaľ čo v hladovaní sa jedno vlákno vráti späť a umožní druhému vláknu použiť zdroje. Zablokovanie spôsobí hladovanie, zatiaľ čo hladovanie pomôže vláknu dostať sa z mŕtveho bodu.

Snímky s láskavým dovolením:

  1. Počítač Steve Jurvetson z Menlo Park, USA (CC BY 2.0)
  2. „Jedálni filozofi“ od Bdeshama (CC BY-SA 3.0)