Čo je zablokovanie v operačnom systéme: Podmienky a algoritmus detekcie

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





Hlavným cieľom operačného systému je zabezpečiť správnu komunikáciu medzi hardvérovými a softvérovými prostriedkami a tiež poskytovať spoločné služby programom. Keď chce proces operačného systému získať prístup k ľubovoľnému prostriedku, najskôr pošle požiadavku konkrétnemu prostriedku, ku ktorému chce získať prístup, potom tento zdroj využije a po použití ho nakoniec uvoľní. Predpokladajme, že veľa procesov sa pokúša získať prístup k jednému prostriedku súčasne, je však ťažké poskytnúť jeden zdroj všetkým procesom súčasne v takej situácii, v ktorej vzniká koncept s názvom uviaznutie. Preto tento článok popisuje, ako dochádza k zablokovaniu a ako prekonať túto slepú situáciu.

Čo je zablokovanie operačného systému?

Definícia: Dead-Lock je situácia, keď dvaja alebo viac procesorov čaká na to, že sa nejaká udalosť stane, ale také udalosti, ktoré sa nestanú, sú zablokovaním a o procesoroch sa hovorí, že sú v mŕtvom stave. Napríklad predpokladajme scenár v reálnom čase, keď sú na jednosmernej ceste dve autá A a B, ktoré riadia dvaja jednotliví vodiči. Teraz nastáva situácia, keď vodič auta A tvrdí, že pohyb smerom na sever je správny smer, zatiaľ čo vodič auta B tvrdí, že pohyb smerom na juh je správny. Ale ani jeden sa nepohybuje dozadu, aby umožnil ďalšiemu autu pohybovať sa vpred, tento stav sa nazýva zablokovanie.




Príklad automobilu

auto-priklad

Pre lepšie pochopenie zvážme ďalší príklad, kde sú dva zdroje R1, R2 a dva procesy P1 a P2, kde R1 je priradený P1 a R2 je priradený P2. Teraz, keď P1 chce získať prístup k R2, ako už vieme, R2 je držané P2, a teraz P2 chce mať prístup k R1, čo je P1, ktorý sa vykoná, len keď získa prístup k R2, P2 sa vykoná, až keď získa prístup k R1, táto situácia je zablokovaný stav.



Príklad procesora

príklad procesora

Podmienky zablokovania

Nasledujú štyri dôležité podmienky zablokovania, ktoré nastanú, ak nastanú všetky podmienky súčasne, existuje určitá šanca, že dôjde k zablokovaniu.

Vzájomné vylúčenie

To znamená, že akýkoľvek zdroj, ktorý používame, sa musí používať spôsobom, ktorý sa navzájom vylučuje. Kde iba jeden proces používa súčasne iba jeden zdroj. Napríklad pokračuje tlačový proces a zrazu sa iný proces pokúsi prerušiť tlačový proces. Takže tu v situácii vzájomného vylúčenia sa až po dokončení tlačovej úlohy spracuje iba ďalšia úloha. Vzájomné vylúčenie je možné vylúčiť súčasným zdieľaním zdrojov, čo nie je možné prakticky.

Vzájomné vylúčenie

vzájomné vylúčenie

Bez predkupného práva

Podľa preventívne založené na algoritmoch, ak existuje prioritná úloha, ktorá sa pokúša prerušiť aktuálnu úlohu. Preventívny algoritmus, ktorý drží aktuálnu úlohu, najskôr vykoná prioritnú úlohu a vráti sa späť k svojej prvej úlohe. Situácia vysvetlená podľa vyššie uvedeného príkladu, keď proces drží zdroj, pokiaľ je vykonaný, to znamená, že P1 môže uvoľniť R1 až po vykonaní, podobne P2 uvoľniť R2 až po vykonaní. Ak neexistuje preventívne opatrenie, môže dôjsť k zablokovaniu.


Príklad zákazu akýchkoľvek výnimiek

príklad zákazu predvídania

Vydrž a čakaj

Proces obsahuje určité zdroje a čaká na ďalšie zdroje, ale tieto zdroje získava iný proces. Z vyššie uvedeného príkladu P1 drží R1 a čaká na R2, kde R2 získa P2, a P2 drží R2 a čaká na R1, kde R1 získa P1, je pozastavenie a v systéme môže dôjsť k zablokovaniu situácie.

Príklad podržania a čakania

príklad podržať a čakať

Kruhové čakanie

O množine procesov sa hovorí, že sú v mŕtvom bode, ak jeden proces čaká na zdroj, ktorý je pridelený inému procesu, a tento proces čaká na zdroj, je podobný vyššie vysvetlenému príkladu, keď je v slučke. Kde P1 čaká na R2 a R2 je pridelené pre P2 a P2 čaká na R1 a R1 pridelené pre P1, čo je kruhový čakací formulár, ak táto podmienka vyhovuje zablokovaniu.

Príklad kruhového čakania

príklad kruhového čakania

Algoritmus detekcie mŕtveho zámku

Prípady, keď pridelíme prostriedky procesom a operačný systém znova skontroluje, či v systéme došlo k zablokovaniu alebo nie, pomocou 2 hlavných algoritmov detekcie zablokovania, sú to

  • Jedna inštancia
  • Viaceré inštancie typu zdroja

Jedna inštancia

Jedna inštancia je situácia, keď systém má jediné inštancie všetkých zdrojov. Je tiež známy ako čakanie na algoritmus grafu alebo graf alokácie zdrojov. Graf alokácie zdrojov sa skladá zo sady procesov a sady zdrojov, ktoré sú reprezentované ako dva rôzne vrcholy. Zdroje v grafe alokácie zdrojov sú upravené a sú reprezentované ako čakanie na formu grafu. Kde čakanie na formu grafu má iba procesy, ktoré sú reprezentované ako vrcholy, ako je zobrazené nižšie, kde,

  • Graf alokácie zdrojov: Procesy P1, P2, P3 a zdroje R1, R2, R3 sú znázornené v grafe alokácie zdrojov.
  • Wait for Graph: Čakajú sa iba na procesy P1, P2, P3, ktoré sa čakajú na graf.
  • Ak existuje podmienka cyklu, znamená to, že ak existuje nepretržitý tok procesu v jednom smere, znamená to, že podmienka cyklu končí a čaká sa na zablokovanie grafu.

Príklad 1: Nasledujúci príklad ukazuje, že neexistuje žiadny zablokovaný stav, pretože nie je pozorovaný žiadny kontinuálny tok čakajúci na graf.

Príklad jednej inštancie

príklad jednej inštancie

Príklad 2: K zablokovaniu došlo, pretože existuje nepretržitý tok cyklu od P1 do P4.

Jedna inštancia - príklad 2.

príklad jednej inštancie2

Ak sa zablokovanie v systéme vyskytuje veľmi často, potom sa často používa detekčný algoritmus. Ak sa detekčný algoritmus bude viac využívať, bude to mať viac režijných nákladov a viac času na výpočet. Preto, aby sme to prekonali, vyvoláme algoritmus potom, keď sa pri rovnakom čase použije váha grafu na detekciu zablokovania.

Viaceré inštancie typu zdroja

Viaceré inštancie typu zdroja je situácia, keď má systém viac inštancií všetkých zdrojov, je tiež známy ako Bankersov algoritmus. Podľa algoritmu Bankers, akonáhle proces získa všetky potrebné zdroje, potom svoje zdroje uvoľní.

Uvažujme nasledujúci príklad, predpokladajme, že existujú 3 procesy P0, P1, P2 a typ zdroja A, B, C, kde A môže byť CPU , B môže byť tlačiareň a C môže byť klávesnica. Číslice „0“ v stĺpci predstavujú dostupnosť zdrojov.

Prípad (i): Predpokladajme, že ak vezmeme požiadavku na podmienku „000“, ktorá je prítomná v P0 a P2, mali by sme skontrolovať, ktorá požiadavka je splnená, procesy P0 uvoľnia procesy po získaní pridelenia, potom ďalšie P2 procesy uvoľnia po získaní pridelenia. Takto napríklad v postupnosti jeden po druhom uvoľňuje PO, P2, P3, P1, P4 v poradí. Nakoniec dostaneme dostupné zdroje ako P7, P2, P6. Dostupná sekvencia je stav, keď neexistuje zablokovanie.

Príklad bankárov - algoritmus

bankers-algorithm-example1

Domy (ii): Predpokladajme, že ak P2 je 001 namiesto 000, teraz použite algoritmus bankára na kontrolu stavu zablokovania, kde sa spomedzi všetkých 5 procesov vykoná iba P0. Preto sú P1, P2, P3, P4 v zablokovanom stave okrem P0.

Bankári - príklad 2

bankari-priklad2

Aplikácie zablokovania

Aplikácie zablokovania možno vysvetliť na príklade online výsledkov skúšky v reálnom čase, keď sa niekoľko študentov pokúsi v čase vydania dostať na webovú stránku univerzity. Je možné pozorovať, že webová stránka sa občas nenačíta naraz viacerým používateľom, ide o zablokovanie. To je možné prekonať použitím niektorého z algoritmov.

Výhody

Výhody zablokovania sú

  • Pri vyhýbaní sa uviaznutiu nie je pozorovaný žiadny predkupný nárok
  • Žiadne zdržanie v procese

Nevýhody

Nevýhodou zablokovania je

  • Zdroj, ktorý sa má použiť, musí byť vopred známy
  • Blokovanie procesu na dlhú dobu
  • Predkupné straty sa dedia.

Tento článok poskytuje prehľad o tom, ako dochádza k zablokovaniu, keď existujú dva alebo viac procesov, a trom podmienkam, ktoré sú príčinou zablokovania, a k dvom typom algoritmov, konkrétne k algoritmu zdieľania zdrojov, ktorý zistí, že existuje stav uviaznutia a bankárov algoritmus, ktorý je algoritmom na vyhýbanie sa zablokovaniu. Tu je otázka „Čo sa stane, ak sa zablokovanie ignoruje?“.