Odporúčaná, 2024

Redakcia Choice

Rozdiel medzi zablokovaním a hladom v OS

Zablokovanie a hladomor sú obidve podmienky, kedy boli procesy vyžadujúce zdroj oneskorené dlho. Aj keď sa zablokovanie a hladovanie v mnohých aspektoch navzájom líšia. Zablokovanie je stav, pri ktorom nedochádza k žiadnemu procesu na vykonanie a každý čaká na zdroje získané inými procesmi. Na druhej strane, v procese Hviezdna, proces s vysokými prioritami neustále využíva prostriedky, ktoré zabraňujú procesu s nízkou prioritou získať zdroje. Prediskutujeme niekoľko rozdielov medzi zablokovaním a hladom s pomocou porovnávacieho grafu zobrazeného nižšie.

Porovnávacia tabuľka

Základ pre porovnaniedeadlockhladovania
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 podmienkyVý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é menoOkružné čakanie.LifeLock.
zdrojeV zablokovanom stave sú požadované zdroje blokované inými procesmi.Pri hladovaní sú požadované zdroje nepretržite využívané procesmi s vysokou prioritou.
prevenciaVyhnite 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.

Zablokovanie je bežný problém v multiprocesných operačných systémoch, distribuovaných systémoch a tiež v paralelných počítačových systémoch. Existujú štyri podmienky, ktoré sa musia súčasne vyskytnúť, aby sa zvýšil stav zablokovania, ktorými sú vzájomné vylúčenie, držanie a čakanie, žiadna preemba a okružné čakanie.

  • 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

  1. 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.
  2. 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.
  3. Zablokovanie sa často nazýva názvom kruhový čakať, zatiaľ čo hladovanie sa nazýva Lived lock .
  4. V procese Deadlock sú zdroje procesom zablokované, zatiaľ čo v procese hladovania sú procesy nepretržite využívané procesmi s vysokými prioritami.
  5. 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ť.

Top