Rozdiel medzi zablokovaním a hladovaním v operačnom systéme OS

Operačný systém je najzákladnejší softvér, ktorý beží na počítači. Je zodpovedný za správu pamäte a procesov počítača, ako aj 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é prideľovanie zdrojov používateľom a programom na rozdiel od rovnakého rozdelenia medzi procesy. Spravodlivý systém plánovania umožňuje jednému procesu využiť CPU, zatiaľ čo druhý čaká vo fronte. Výsledkom je, že každé vlákno získa dostatočný prístup k obmedzeným zdrojom, čím zabráni dvom najbežnejším podmienkam, ktoré by inak proces oneskorili: Deadlock a Starvation. Oba sú príbuzné koncepty, v ktorých procesy nemajú prístup k zdrojom. Tento článok poukazuje na niektoré kľúčové body pri porovnaní týchto dvoch na rôznych frontoch.

Čo je to Deadlock?

Zablokovanie je stav, v ktorom je zablokovaná množina vlákien, pretože každý proces, ktorý vlastní zdroj, sa pokúša získať prístup k iným zdrojom, ktoré vlastní iný proces, čo nakoniec bráni spravodlivému plánovaniu systému. K zablokovaniu dochádza vtedy, keď platia nasledujúce štyri podmienky: Vzájomné vylúčenie znamená, že k zdroju môže mať súčasne prístup iba jeden proces; Žiadna podmienka preemption neznamená, že zdroj môže byť uvoľnený len dobrovoľne procesom, ktorý drží zdroj; Hold & wait znamená, že proces uchovávajúci zdroje môže vyžadovať dodatočné zdroje, ktoré majú k dispozícii iné procesy a; Kruhové čakanie znamená, že dva alebo viac procesov je zaseknutých v kruhovom reťazci a čakajú, kým každý proces uvoľní svoje zdroje.

Čo je hladovka?

Hladovanie je stav, ktorý nastane, keď proces prejde na dobu čakania na neurčito, pretože proces s nízkou prioritou nikdy nedostane príležitosť získať prístup k zdroju kvôli neustálemu toku procesov s vysokou prioritou pristupujúcich k rovnakému zdroju. Ide o problém správy zdrojov, pretože procesu je odoprený prístup k zdroju, ktorý vyžaduje, a tým sa proces tlačí do neurčitej doby čakania. Stáva sa to preto, že požadovaný zdroj nie je nikdy pridelený procesu, kvôli ktorému proces hladuje po zdrojoch, odtiaľ pochádza názov. Najlepším spôsobom, ako sa vyhnúť hladovaniu, je použiť techniku ​​starnutia, ktorá postupne zvyšuje prioritu procesov, ktoré sú dlhší čas v čakacej dobe, aby sa zaistil spravodlivý systém plánovania.

Rozdiel medzi Deadlock a Starvation v OS

  1. Definícia Deadlock and Starvation

Zablokovanie a hladovanie sú súvisiace koncepty, ktoré zabraňujú spravodlivému plánovaniu systému, v ktorom sú blokované procesy, v prístupe k zdrojom. Deadlock, ako naznačuje názov, sa týka stavu, keď je zablokovaná množina vlákien alebo procesov, pretože každý proces čaká na získanie zdroja, ktorý je držaný iným procesom, čo má za následok zablokovanie, v ktorom programy prestanú fungovať. Hladovanie, na druhej strane, je vyvolané zablokovaním, ktoré spôsobuje zmrazenie procesu, pretože procesu s nízkou prioritou je odmietnutý prístup k zdroju, ktorý je priradený procesu s vysokou prioritou.

  1. Podmienka

Zablokovanie sa týka konkrétnej podmienky, ktorá nastane, keď vlákno alebo proces prejde do čakacej doby, pretože požadovaný systémový zdroj je zadržaný iným procesom, ktorý zase čaká na uvoľnenie zdroja iným procesom, čím sa vytvorí zablokovanie. Je to spôsobené zlým využívaním zdrojov. Hladovka je podmienka odloženia na neurčito, kde je procesu s nízkou prioritou odoprený prístup k zdrojom, ktoré vyžaduje, pretože zdroje sú alokované do iného procesu s vysokou prioritou. Ide o problém správy zdrojov, ktorý núti systém alokovať zdroje iba na procesy s vysokou prioritou.

  1. Charakteristiky zablokovania a hladovania

Zablokovanie je konečná forma hladovania, ktorá je spôsobená súbežným výskytom nasledujúcich štyroch podmienok: vzájomné vylúčenie, žiadna predvoľba, podržanie a čakanie a kruhové čakanie. K zablokovaniu dochádza iba v systémoch, v ktorých všetky štyri podmienky platia. K hladovaniu dochádza na základe rôznych podmienok, napríklad keď nie je k dispozícii dostatok zdrojov a priorita procesov sa začína znižovať alebo keď procesy začnú odovzdávať zdroje iným procesom bez kontroly. Ak proces s nízkou prioritou požaduje zdroj vyhradený pre procesy s najvyššou prioritou, proces navždy vyhladne. K hladovaniu dochádza aj vtedy, keď sú zdroje alokované ľubovoľne, čo spôsobuje, že procesy čakajú dlhšie.

  1. Prevencia

Hladovke je možné zabrániť použitím správneho plánovacieho algoritmu s prioritným frontom, ktorý v skutočnosti tiež používa techniku ​​starnutia - techniku ​​plánovania, ktorá pridáva faktor starnutia k priorite každej požiadavky, čo znamená, že zvyšuje úroveň priority procesov, ktoré čakajú na nízku prioritu dlho. Poskytnutie väčšieho množstva zdrojov programom by malo zabrániť ďalšiemu preťaženiu zdrojov. Aby sa zabránilo zablokovaniu systému, procesom musí byť odmietnutý prístup k jednému alebo viacerým zdrojom a súčasne čakať na ďalšie a súčasne by mal byť povolený prístup iba k jednému procesu.

Deadlock vs. Starvation: Tabuľka porovnania

Zhrnutie Deadlock VS. Hladovanie

Zablokovanie a hladovanie sú súvisiace koncepcie viacprocesových operačných systémov alebo distribuovaných systémov, ktoré spôsobujú, že jedno alebo viac vlákien alebo procesov uviazlo v čakaní na zdroje, ktoré potrebujú. Zablokovanie je situácia, ktorá nastane, keď jeden alebo viac procesov požaduje prístup k rovnakému zdroju, čo spôsobí zmrazenie procesu, zatiaľ čo hladovanie je spôsobené zablokovaním, ktoré proces posúva do stavu neurčitého odkladu, pretože procesom je odoprený prístup k zdroju, ktorý vlastní proces s vysokou prioritou a musíte čakať navždy.

Prečítajte si viac o: ,