Rozdiel medzi zablokovaním a hladovaním

Rozdiel medzi zablokovaním a hladovaním
Rozdiel medzi zablokovaním a hladovaním
Anonim

Uviaznutie vs hladovanie

Hlavný rozdiel medzi zablokovaním a hladovaním je vo vzťahu príčiny a následku medzi nimi; je to uviaznutie, ktoré spôsobuje hladovanie. Ďalším zaujímavým rozdielom medzi zablokovaním a hladovaním je, že zablokovanie je problém, zatiaľ čo hladovanie môže niekedy pomôcť dostať sa z mŕtveho bodu. V počítačovom svete bude pri písaní počítačového programu existovať viac ako jeden proces/vlákno, ktoré bude prebiehať súbežne jeden po druhom, aby splnili požadovanú službu programu. Preto, aby bol systém spravodlivý, programátor by mal zabezpečiť, aby všetky procesy/vlákna dostali alebo získali dostatočný prístup k zdrojom, ktoré potrebujú. Ak nie, dôjde k patovej situácii a neskôr to povedie k hladovaniu. Spravodlivý systém vo všeobecnosti neobsahuje žiadne uviaznutia alebo hladovanie. Uviaznutie a hladovanie nastanú hlavne vtedy, keď veľa vlákien súťaží o obmedzené zdroje.

Čo je uviaznutie?

Uviaznutie je stav, ktorý nastane, keď dve vlákna alebo procesy na seba čakajú na dokončenie úlohy. Iba zavesia, ale svoju úlohu nikdy nezastavia ani nedokončia. V informatike je všade vidieť slepé uličky. V databáze transakcií, keď dva procesy, každý vo svojej vlastnej transakcii, aktualizujú rovnaké dva riadky informácií, ale v opačnom poradí, spôsobí uviaznutie. Pri súbežnom programovaní môže dôjsť k zablokovaniu, keď dve konkurenčné akcie budú na seba čakať, aby pokračovali vpred. V telekomunikačných systémoch môže dôjsť k uviaznutiu v dôsledku straty alebo poškodenia signálov.

V súčasnosti je uviaznutie jedným z hlavných problémov systémov s viacerými procesormi a paralelných výpočtov. Ako riešenie je implementovaný uzamykací systém nazývaný synchronizácia procesov pre softvér aj hardvér.

Rozdiel medzi zablokovaním a hladovaním
Rozdiel medzi zablokovaním a hladovaním

Čo je hladovka?

Zo slovníka lekárskej vedy vyplýva, že hladovanie je výsledkom vážneho alebo úplného nedostatku živín, ktoré sú potrebné na udržanie života. Podobne v informatike je hladovanie problém, ktorý sa vyskytuje, keď viaceré vlákna alebo procesy čakajú na rovnaký zdroj, čo sa nazýva uviaznutie.

Ak sa chcete dostať 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 sa to deje nepretržite a ten istý proces alebo vlákno sa musí zakaždým vzdať alebo vrátiť späť a zároveň nechať iné procesy alebo vlákna používať zdroj, potom vybraný proces alebo vlákno, ktoré sa vrátilo späť, prejde situáciou nazývanou hladovanie. Preto, ako sa dostať z patovej situácie, hladovanie je jedným z riešení. Preto sa hladovanie niekedy nazýva akýmsi živým zámkom. Ak existuje veľa procesov alebo vlákien s vysokou prioritou, proces alebo vlákno s nižšou prioritou vždy uviazne v mŕtvom bode.

Môže dôjsť k mnohým hladovaniam, ako je nedostatok zdrojov a nedostatok procesora. Existuje veľa bežných príkladov hladovania. Sú to problém čitateľov a spisovateľov a problém filozofov stolovania, čo je známejšie. Za okrúhlym stolom s misami špagiet sedí päť tichých filozofov. Medzi každú dvojicu susedných filozofov sú umiestnené vidličky. Každý filozof musí striedavo myslieť a jesť. Filozof však môže jesť špagety iba vtedy, keď má ľavú aj pravú vidličku.

Uviaznutie vs hladovanie
Uviaznutie vs hladovanie

„Filozofi stolovania“

Aký je rozdiel medzi zablokovaním a hladovaním?

Proces:

• V mŕtvom bode budú dve vlákna alebo procesy na seba čakať a obe nebudú pokračovať.

• Pri hladovaní, keď dve alebo viaceré vlákna alebo procesy čakajú na ten istý zdroj, jedno sa vráti späť a nechá ostatné použiť zdroj ako prvé a potom to hladujúce vlákno alebo proces skúsi znova. Preto všetky vlákna alebo procesy budú pokračovať ďalej.

Vrátenie späť:

• V mŕtvom bode budú vlákna/procesy s vysokou prioritou, ako aj vlákna/procesy s nízkou prioritou na seba nekonečne čakať. Nikdy to nekončí.

• Ale pri hladovaní budú tie s nízkou prioritou čakať alebo vrátiť sa späť, ale tie s vysokou prioritou budú pokračovať.

Čaká alebo uzamkne:

• Uviaznutie je kruhové čakanie.

• Hladovanie je istým druhom živobytia a niekedy pomáha dostať sa zo slepej uličky.

Uviaznutie a hladovanie:

• Uviaznutie spôsobuje hladovanie, ale hladovanie nespôsobuje uviaznutie.

Príčiny:

• Uviaznutie nastane v dôsledku vzájomného vylúčenia, podržania a čakania, bez preempcie alebo kruhového čakania.

• K hladovaniu dochádza v dôsledku nedostatku zdrojov, nekontrolovaného riadenia zdrojov a priorít procesov.

Zhrnutie:

Uviaznutie vs. hladovanie

Uviaznutie a hladovanie sú niektoré z problémov, ktoré sa vyskytujú v dôsledku pretekov údajov a podmienok pretekov, ku ktorým dochádza počas programovania, ako aj implementácie hardvéru. V mŕtvom bode budú dve vlákna na seba nekonečne čakať bez spustenia, zatiaľ čo pri hladovaní sa jedno vlákno vráti späť a nechá druhé vlákno, aby využívalo zdroje. Uviaznutie spôsobí hladovanie, zatiaľ čo hladovanie pomôže vláknu dostať sa z mŕtveho bodu.

Odporúča: