Porovnávacia tabuľka
Základ pre porovnanie | deadlock | hladovania |
---|---|---|
základné | Blokovanie je miesto, kde nedochádza k žiadnemu procesu a zablokuje sa. | Hladovanie je miesto, kde sa procesy s nízkou prioritou blokujú a proces s vysokou prioritou pokračuje. |
Vytvorenie podmienky | Výskyt vzájomného vylúčenia, pozastavenie a čakanie, žiadna preempcia a obežník čakajú súčasne. | Presadzovanie priorít, nekontrolované riadenie zdrojov. |
Iné meno | Okružné čakanie. | LifeLock. |
zdroje | V zablokovanom stave sú požadované zdroje blokované inými procesmi. | Pri hladovaní sú požadované zdroje nepretržite využívané procesmi s vysokou prioritou. |
prevencia | Vyhnite sa vzájomnému vylúčeniu, držte a čakajte a okružné čakanie a umožnite predplácaniu. | Starnutie. |
Definícia zablokovania
Zamrznutie je situácia, keď viaceré procesy v procesore súťažia o konečný počet zdrojov dostupných v procesore. Každý proces má zdroj a čaká na získanie zdroja, ktorý je držaný iným procesom. Všetky procesy čakajú na zdroje kruhovým spôsobom. Na obrázku nižšie vidíte, že proces P1 získal prostriedok R2, ktorý je požadovaný procesom P2 a proces P1 požaduje zdroj R1, ktorý je znova držaný skupinou R2. Preto procesy P1 a P2 vytvárajú zablokovanie.
- Vzájomné vylúčenie: V prípade, že iný proces požaduje ten istý zdroj, môže proces naraz použiť iba jeden proces naraz, musí počkať, kým proces s použitím prostriedkov neuvoľní.
- Počkajte a čakajte: Proces musí mať zdroj a čaká na získanie iného zdroja, ktorý je držaný iným procesom.
- Žiadna predpoveď : Proces disponujúci prostriedkami nemožno predísť. Proces udržiavajúci zdroj musí dobrovoľne prepustiť zdroj po dokončení úlohy.
- Okružné čakanie: Proces musí čakať na zdroje kruhovým spôsobom. Predpokladajme, že máme tri procesy {P0, P1, P2}. P0 musí čakať na zdroj držaný P1; P1 musí čakať na získanie prostriedku držaného procesom P2 a P2 musí čakať na získanie procesu držaného P0.
Hoci existujú niektoré aplikácie, ktoré dokážu rozpoznať programy, ktoré môžu byť zablokované. Operačný systém však nikdy nie je zodpovedný za zabránenie zablokovania. Je zodpovednosťou programátorov navrhnúť programy bez zablokovania. Môže sa to stať tak, že sa vyhneme vyššie uvedeným podmienkam, ktoré sú nevyhnutné pre prípad zablokovania
Definícia hladu
Hladnutie môže byť definované ako keď žiadosť o proces pre zdroj a tento zdroj bola nepretržite používaná inými procesmi, potom žiadajúci proces čelí hladomoru. Pri hladovaní proces pripravený na spustenie čaká, kým procesor pridelí zdroj. Tento proces však musí čakať na neurčito, pretože ostatné procesy neustále blokujú požadované zdroje.
Problém hladovania sa zvyčajne vyskytuje v prioritnom plánovacom algoritme . V prioritnom plánovacom algoritme je proces s vyššou prioritou vždy pridelený zdroj, ktorý bráni tomu, aby proces s nižšou prioritou získal požadovaný zdroj.
Starnutie môže vyriešiť problém hladovania. Starnutie postupne zvyšuje prioritu procesu, ktorý dlho čakal na zdroje. Starnutie zabraňuje procesu s nízkou prioritou počkať na neurčito pre zdroj.
Kľúčové rozdiely medzi zablokovaním a hladom v OS
- V mŕtvom bode neprebieha žiadny z procesov na vykonanie, každý proces sa blokuje čakaním na zdroje získané iným procesom. Na druhej strane, hladovanie je podmienkou, keď procesy, ktoré majú vyššiu prioritu, môžu neustále získavať zdroje tým, že zabraňujú procesom s nízkou prioritou získať zdroje, čo vedie k neurčitému blokovaniu procesov s nízkou prioritou.
- Blokovanie nastáva, keď sa vyskytnú štyri podmienky: Vzájomné vylúčenie, Podržanie a čakanie, Žiadne predčasné upustenie a Obežné čakanie sa vyskytnú súčasne. Avšak hladu sa vyskytuje pri presadzovaní priorít procesu pri alokovaní zdrojov alebo v nekontrolovanom riadení zdrojov v systéme.
- Zablokovanie sa často nazýva názvom kruhový čakať, zatiaľ čo hladovanie sa nazýva Lived lock .
- V procese Deadlock sú zdroje procesom zablokované, zatiaľ čo v procese hladovania sú procesy nepretržite využívané procesmi s vysokými prioritami.
- Zablokovanie možno zabrániť tým, že sa vyhneme podmienkam, ako je vzájomné vylúčenie, pozastavenie a čakanie a kruhové čakanie a umožnením predvídania procesov, ktoré dlhodobo uchovávajú zdroje. Na druhej strane starnutie môže byť zabránené starnutím .
záver:
Funkcia zablokovania a vyhladzovania spomaľuje proces vykonávania blokovaním. Na jednej strane, kde môže zablokovanie spôsobiť straty hladomoru, a na druhej strane hladovosť môže procesy vyčistiť.