Co je zablokování v operačním systému: Algoritmus podmínek a detekce

Vyzkoušejte Náš Nástroj Pro Odstranění Problémů





Hlavním cílem operačního systému je zajistit správnou komunikaci mezi hardwarovými a softwarovými prostředky a také poskytovat běžné služby programům. Když proces operačního systému chce získat přístup k jakémukoli prostředku, nejprve odešle požadavek na konkrétní prostředek, ke kterému chce získat přístup, poté tento prostředek využije a po použití jej nakonec uvolní. Předpokládejme, že mnoho procesů se pokouší o přístup k jednomu zdroji najednou, takže je obtížné poskytnout jeden zdroj všem procesům najednou, v takové situaci vzniká koncept s názvem uváznutí. Proto tento článek popisuje, jak dochází k zablokování a jak překonat tuto zablokovanou situaci.

Co je zablokování v operačním systému?

Definice: Dead-Lock je situace, kdy dva nebo více procesorů čeká na to, že se nějaká událost stane, ale takové události, které se nestanou, jsou zablokováním a o procesorech se říká, že jsou ve stavu zablokování. Předpokládejme například scénář v reálném čase, kdy jsou na jednosměrné silnici dva vozy A & B, které řídí dva individuální řidiči. Nyní nastává situace, kdy řidič auta A říká, že pohyb směrem na sever je správný, zatímco řidič auta B říká, že pohyb směrem k jihu je správný. Ale ani jeden z nich se nepohybuje zpět, aby umožnil dalšímu vozu pohyb vpřed, tato podmínka se nazývá zablokování.




Příklad automobilu

příklad automobilu

Pro lepší pochopení zvažte další příklad, kde jsou dva zdroje R1, R2 a dva procesy P1 a P2, kde R1 je přiřazen P1 a R2 je přiřazen P2. Nyní, pokud P1 chce získat přístup k R2, jak již víme, R2 je drženo P2, a teď P2 chce mít přístup k R1, což je P1, který se provede, pouze když získá přístup k R2, P2 také provede, když se dostane k R1, tato situace je zablokovaný stav.



Příklad procesoru

příklad procesoru

Podmínky zablokování

Níže jsou uvedeny čtyři důležité podmínky zablokování, pokud nastanou všechny podmínky současně, existuje určitá šance, že dojde k zablokování.

Vzájemné vyloučení

Znamená to, že jakýkoli zdroj, který používáme, musí být používán vzájemně se vylučujícím způsobem. Kde pouze jeden proces používá pouze jeden prostředek najednou. Například probíhá proces tisku a najednou se jiný proces pokusí přerušit proces tisku. Takže zde v situaci vzájemného vyloučení bude až po dokončení tiskového úkolu zpracován pouze další úkol. Vzájemné vyloučení lze vyloučit současným sdílením zdrojů, což prakticky není možné.

Vzájemné vyloučení

vzájemné vyloučení

Žádná předkupní smlouva

Podle preventivní založené algoritmy, pokud existuje prioritní úkol, který se pokouší přerušit aktuální úkol. Preventivní algoritmus, který drží aktuální úkol a nejprve provede prioritní úkol a vrátí se k jeho prvnímu úkolu. Situace vysvětlená podle výše uvedeného příkladu, kdy proces drží zdroj, dokud je spuštěn, to znamená, že P1 může uvolnit R1 až po provedení, podobně P2 uvolnit R2 až po provedení. Pokud neexistuje předkupní právo, může dojít k zablokování.


Příklad zákazu preemption

příklad zákazu preemption

Držte a počkejte

Proces drží některé zdroje a čeká na další zdroje, ale tyto zdroje získává nějaký jiný proces. Z výše uvedeného příkladu P1 drží R1 a čeká na R2, kde R2 získává P2, a P2 drží R2 a čeká na R1, kde R1 získává P1, je pozastavení a v systému může dojít k zablokování situace.

Příklad přidržení a čekání

příklad podržte a počkejte

Kruhové čekání

O sadě procesů se říká, že jsou v mrtvém bodě, pokud jeden proces čeká na prostředek, který je přidělen jinému procesu, a tento proces čeká na zdroj, je podobný výše vysvětlenému příkladu, kde je ve formě smyčky. Kde P1 čeká na R2 a R2 je přiděleno pro P2 a P2 čeká na R1 a R1 přiděleno pro P1, což je kruhový formulář čekání, pokud tato podmínka splňuje zablokování.

Příklad kruhového čekání

příklad kruhového čekání

Algoritmus detekce zablokování

Případy, kdy přidělíme prostředky procesům a operační systém znovu zkontroluje, zda v systému došlo k zablokování nebo ne, pomocí 2 hlavních algoritmů detekce zablokování, jsou

  • Jedna instance
  • Více instancí typu prostředku

Jedna instance

Jedna instance je situace, kdy systém má jednotlivé instance všech prostředků. Je také známý jako čekání na algoritmus grafu nebo graf alokace prostředků. Graf alokace zdrojů se skládá ze sady procesů a sady zdrojů, které jsou reprezentovány jako dva různé vrcholy. Zdroje v grafu alokace prostředků jsou upraveny a jsou reprezentovány jako čekání na formu grafu. Kde čekání na formu grafu má pouze procesy, které jsou reprezentovány jako vrcholy, jak je uvedeno níže, kde,

  • Graf alokace zdrojů: Procesy P1, P2, P3 a zdroje R1, R2, R3 jsou znázorněny v grafu alokace zdrojů.
  • Čekat na graf: Čekají se na graf pouze procesy P1, P2, P3.
  • Pokud existuje podmínka cyklu, znamená to, že pokud existuje kontinuální tok procesu v jednom směru, znamená to, že podmínka cyklu končí a čeká na zablokování grafu.

Příklad 1: Níže uvedený příklad ukazuje, že neexistuje žádný stav zablokování, protože při čekání na graf není pozorován žádný nepřetržitý tok.

Příklad jedné instance

příklad jedné instance

Příklad 2: Došlo k zablokování, protože existuje nepřetržitý tok cyklu od P1 do P4.

Jedna instance - příklad 2.

příklad jedné instance2

Pokud v systému dochází k zablokování velmi často, často se používá detekční algoritmus. Pokud bude detekční algoritmus používán více, bude zde více režijních nákladů a více výpočetního času. Proto, abychom to překonali, vyvoláme algoritmus poté, co se stejnou dobu použije váha grafu k detekci zablokování.

Více instancí typu zdroje

Více instancí typu prostředku je situace, kdy systém má více instancí všech zdrojů, je také známý jako Bankersův algoritmus. Podle algoritmu Bankers, jakmile proces získá všechny potřebné zdroje, uvolní své zdroje.

Uvažujme následující příklad, předpokládejme, že existují 3 procesy P0, P1, P2 a typ prostředku A, B, C, kde A může být procesor , B může být tiskárna a C může být klávesnice. Číslice „0“ ve sloupci představují dostupnost zdrojů.

Případ (i): Předpokládejme, že pokud vezmeme požadavek na podmínku „000“, který je přítomen v P0 a P2, měli bychom zkontrolovat, který požadavek je splněn, procesy P0 uvolní procesy po získání alokace, poté další P2 procesy uvolní po získání alokace. Takhle v sekvenci jeden po druhém proces uvolňuje P0, P2, P3, P1, P4 v sekvenci. Nakonec získáme dostupné zdroje jako P7, P2, P6. Dostupná sekvence je stav, kdy nedochází k zablokování.

Příklad bankéřů - algoritmus

bankers-algorithm-example1

Domy (ii): Předpokládejme, že pokud je P2 namísto 000 001, nyní použijte algoritmus bankéře ke kontrole zablokování, kdy se mezi všemi 5 procesy provede pouze P0. Proto jsou P1, P2, P3, P4 ve stavu zablokování s výjimkou P0.

Bankéři - příklad 2

bankéři-příklad2

Aplikace zablokování

Aplikace zablokování lze vysvětlit na příkladu online výsledků zkoušek v reálném čase, kdy se několik studentů pokusí v době vydání získat přístup na své webové stránky univerzity. Lze pozorovat, že webová stránka se občas nenačte více uživatelům najednou, jedná se o zablokování. To lze překonat použitím některého z algoritmů.

Výhody

Výhody zablokování jsou

  • Při vyhýbání se zablokování není pozorována žádná předkupní práva
  • Žádné zpoždění v procesu

Nevýhody

Nevýhodou zablokování je

  • Zdroj, který má být použit, musí být předem znám
  • Blokování procesu na dlouhou dobu
  • Předkupní ztráty se dědí.

Tento článek poskytuje přehled o tom, jak dochází k zablokování, když existují dva nebo více procesů a tři podmínky, které jsou příčinou zablokování, a dva typy algoritmů, konkrétně algoritmus sdílení zdrojů, který detekuje, že existuje zablokování a bankéřův algoritmus, což je algoritmus vyhýbání se zablokování. Zde je otázka „Co se stane, když bude zablokování ignorováno?“.