Operačný systém je najzákladnejší softvér, ktorý beží na počítači. Zodpovedá za správu pamäte a procesov v počítači a za ochranu podrobností hardvéru pred aplikačnými programami, ktoré ho používajú. Operačný systém počítača tiež zaisťuje spravodlivé rozdelenie zdrojov pre používateľov a programy, na rozdiel od rovnomerného rozdelenia medzi procesmi. Spravodlivé plánovanie umožňuje, aby jeden proces používal CPU, zatiaľ čo druhý čaká vo fronte. Výsledkom je, že každé vlákno má dostatočný prístup k obmedzeným zdrojom, čo bráni dvom najbežnejším podmienkam, ktoré by inak proces oneskorili: Deadlock a hladovanie. Obidva súvisia s pojmami, v ktorých procesy nemajú prístup k zdrojom. Tento článok vyzdvihuje niektoré kľúčové body pri porovnaní týchto dvoch aspektov na rôznych frontoch.
Deadlock je stav, keď je blokovaná sada vlákien, pretože každý proces, ktorý drží prostriedok, sa pokúša získať prístup k niektorým iným zdrojom, ktoré sú držané iným procesom, a nakoniec bráni spravodlivému plánovaniu systému. Situácia na mŕtvom bode nastane, keď sú splnené tieto štyri podmienky: Vzájomné vylúčenie znamená, že k prostriedku môže naraz pristúpiť iba jeden proces; Žiadna podmienka preemption znamená, že zdroj môže byť uvoľnený len dobrovoľne procesom, ktorý drží zdroj; Hold & wait znamená, že proces držiaci zdroje môže vyžadovať ďalšie zdroje držané inými procesmi a; Kruhové čakanie znamená, že v kruhovom reťazci sú uviaznuté dva alebo viac procesov, ktoré čakajú, až každý proces uvoľní svoje príslušné zdroje.
Hladovanie je stav, ktorý vzniká, keď proces prechádza do čakacej doby na neurčito, pretože proces s nízkou prioritou nikdy nedostane šancu na prístup k prostriedku kvôli neustálemu toku procesov s vysokou prioritou, ktoré majú prístup k rovnakému prostriedku. Je to problém so správou zdrojov, pretože procesu sa odopiera prístup k prostriedku, ktorý vyžaduje, čím sa tento proces posunie na neurčitú čakaciu dobu. Stáva sa to preto, že prostriedok, ktorý vyžaduje, sa nikdy nepriradí k procesu, ktorý spôsobí, že proces bude hladovať kvôli zdrojom, odtiaľ názov. Najlepším spôsobom, ako sa vyhnúť hladovaniu, je použitie techniky starnutia, ktorá postupne zvyšuje prioritu procesov, ktoré sú v čakacej dobe na dlhú dobu, aby sa zabezpečil spravodlivý systém plánovania..
Ako zablokovanie, tak hladovanie sú príbuzné koncepty, ktoré bránia spravodlivému plánovaniu systému, v ktorom sú procesy blokované v získavaní prístupu k zdrojom. Deadlock, ako už názov napovedá, sa týka stavu, keď je blokovaný súbor vlákien alebo procesov, pretože každý proces čaká na získanie prostriedku, ktorý je držaný iným procesom, čo vedie k situácii zablokovania, keď programy prestanú fungovať. Hladovanie na druhej strane je vyvolané zablokovaním, ktoré spôsobuje zmrazenie procesu, pretože procesu s nízkou prioritou je zamietnutý prístup k prostriedku, ktorý je priradený k procesu s vysokou prioritou..
Zablokovanie sa týka špecifického stavu, ktorý nastane, keď vlákno alebo proces prejde do čakacej periódy, pretože požadovaný systémový prostriedok je držaný iným procesom, ktorý zase čaká na ďalší proces, aby uvoľnil svoj prostriedok, čím sa vytvorí zablokovanie. Je to spôsobené zlým využitím zdrojov. Hladovanie je neurčitá podmienka odloženia, keď sa procesu s nízkou prioritou odoprie prístup k zdrojom, ktoré vyžaduje, pretože zdroje sa prideľujú inému procesu s vysokou prioritou. Je to problém riadenia zdrojov, ktorý núti systém prideľovať zdroje iba procesom s vysokou prioritou.
Deadlock je konečná forma hladu, ktorá je spôsobená, keď sa súčasne vyskytnú tieto štyri podmienky: Vzájomné vylúčenie, Žiadne vylúčenie, Hold & Wait a Circular Wait. K zablokovaniu dôjde iba v systémoch, v ktorých všetky štyri podmienky platia. Hladovanie nastáva na základe rôznych podmienok, napríklad keď nie je dostatok zdrojov na to, aby sa dali dokopy a priorita procesov sa začala znižovať alebo keď procesy začali odovzdávať prostriedky iným procesom bez kontroly. Ak proces s nízkou prioritou požaduje zdroj vyhradený pre procesy s najvyššou prioritou, proces bude hladovať navždy. Hladovanie nastáva aj vtedy, keď sú prostriedky pridelené svojvoľne, čo spôsobuje, že procesy čakajú dlhšiu dobu.
Hladovaniu sa dá zabrániť použitím správneho algoritmu plánovania s frontom priorít, ktorý v skutočnosti používa aj techniku starnutia - techniku plánovania, ktorá k starnutiu každej žiadosti pridáva faktor starnutia, čo zvyšuje úroveň priority procesov, ktoré čakajú nízka priorita. na dlhú dobu. Poskytnutím väčšieho množstva prostriedkov na programy by sa malo zabrániť neustálemu preťaženiu zdrojov. Aby sa zabránilo tomu, že sa systém dostane do slepej uličky, procesom sa musí odoprieť prístup k jednému alebo viacerým zdrojom, zatiaľ čo sa súčasne čaká na ostatných, a súčasne by mal mať povolený prístup iba k jednému procesu..
Ako uviaznutie, tak hladovanie sú príbuzné koncepty vo viacprocesových operačných systémoch alebo distribuovaných systémoch, ktoré spôsobujú, že jedno alebo viac vlákien alebo procesov uviaznu v čakaní na zdroje, ktoré potrebujú. Deadlock je situácia, ktorá nastane, keď jeden alebo viac procesov požiada o prístup k rovnakému zdroju, čo spôsobí, že proces zamrzne, zatiaľ čo hladovanie je spôsobené deadlock, ktorý posunie proces do stavu neurčitého odkladu, pretože procesom je zamietnutý prístup k prostriedku, ktorý má v držbe proces s vysokou prioritou a treba čakať večne.