Zablokování Současně běží více procesů požadujících přidělení určitých prostředků výpočetního systému a převedených do stavu blokovaných procesů – tj.

Slides:



Advertisements
Podobné prezentace
Personální řízení v malých podnicích
Advertisements

NEJKRATŠÍ CESTY MEZI VŠEMI UZLY
TEORIE ROZHODOVÁNÍ A TEORIE HER
Stavový prostor. • Existují úlohy, pro které není k dispozici univerzální algoritmus řešení • různé hry • problém batohu, problém obchodního cestujícího.
Dualita úloh lineárního programování a analýza citlivosti
Projektové řízení Modul č.1.
Rekonstrukce povrchu objektů z řezů Obhajoba rigorózní práce 25. června 2003 Radek Sviták
Operační systémy. OPERAČNÍ SYSTÉMY pomoc operátorovi, podpora vlastností reálného času, víceuživatelských a více úlohových systémů.
Síťová analýza RNDr. Jiří Dvořák, CSc.
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Doplňující referát k přednášce Transakce Šárka Hlušičková
Metody zpracování vybraných témat (projektů)
ADT Strom.
FORMALIZACE PROJEKTU DO SÍŤOVÉHO GRAFU
LOGISTICKÉ SYSTÉMY 7/14.
Definování prostředí pro provozování aplikace dosud jsme řešili projekt v obecné rovině aplikace bude ovšem provozována v konkrétním technickém a programovém.
ÚČEL AUTOMATIZACE (c) Tralvex Yeap. All Rights Reserved.
Řešení dynamických problémů s podmínkami Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta.
SÍŤOVÁ ANALÝZA.
Fakulta životního prostředí Katedra informatiky a geoinformatiky
RNDr. Zdenek Kubíček Nemocnice Třinec
TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.
ORIENTOVANÉ GRAFY V této části se seznámíme s následujícími pojmy:
Modely konzistentnosti Ladislav Kotal PDS 2008Ladislav Kotal2 Konzistentnost Konzistentní = soudržný, neporušený, pevný Konzistenční model = dohoda.
Formulace a vlastnosti úloh lineárního programování
Operační systémy Přednášky pro výuku předmětu Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003.
Operační systémy Přednášky pro výuku předmětu Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003.
Výrok „Počítač je pouze tak inteligentní jako jeho uživatel.“ (Radek Lochman, dnes)
Fakulta životního prostředí Katedra informatiky a geoinformatiky
13AMP 2. přednáška Ing. Martin Molhanec, CSc.. Stav procesu (kontext) Stav procesu je úplná informace, kterou je nutné uschovat při přerušení procesu,
13AMP 3. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled I. Co je to kontext úlohy Co je to kontext úlohy Task switching (přepnutí úlohy)
Transakční zpracování v SQL P. Částek. Transakce Transakce = logická jednotka práce Podaří-li se všechny části transakce, potvrdíme je. COMMIT Jestliže.
Funkce více proměnných.
Petriho sítě.
Dokumentace informačního systému
Proces řízení rizik.
1 Dopad rozhodovací praxe ESD Důchodové pojištění.
Srovnání Petriho sítí a HDA David Ježek. Vícedimensionální automaty Klasické automaty –nemají metodu jak vyjádřit „pravou“ souběžnost událostí A, B 0.
Zablokování (deadlock, smrtelné objetí, uváznutí)
Pre-algebra Antonín Jančařík.
Jedna z největších světových firem v oblasti logistiky 20 leté zkušenosti po celém světě Konzultantské služby.
Rozhodovací proces, podpory rozhodovacích procesů
Distribuované algoritmy - přehled Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.
Distribuovaný deadlock - přehled Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.
Projektové plánování.
PB 169 Počítačové sítě a operační systémy1 Synchronizace procesů Uváznutí PB 169 Počítačové sítě a operační systémy.
1 Centralizovaný rozvojový program 2017 a Institucionální program Ministerstvo školství, mládeže a tělovýchovy Karmelitská 529/5, Praha.
Operační systémy LS 2014/ přednáška 20. dubna 2015.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Stránkování MATĚJ JURIČIČ 2015/2016 EP1 SPŠ A VOŠ JANA PALACHA KLADNO.
Operační systémy 10. Souběh a uváznutí
Téma 6 – Uváznutí Obsah Problém uváznutí a časově závislých chyb
Úvod do databázových systémů
Koordinace důchodových dávek
Znázornění dopravní sítě grafem a kostra grafu Předmět: Teorie dopravy - cvičení Ing. František Lachnit, Ph.D.
1. ročník oboru Mechanik opravář motorových vozidel
Operační výzkum Lineární programování Dopravní úloha nevyrovnaná.
Strukturace učiva Příprava učitelova.
Co se dá změřit v psychologii a pedagogice?
Databázové systémy 1 – KIT/IDAS1 Ing. Monika Borkovcová, Ph.D.
Operační systémy 9. Spolupráce mezi procesy
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Soustava lineárních nerovnic
Rezervy, podmíněné závazky a podmíněná aktiva
Funkce více proměnných.
Provozováno Výzkumným ústavem pedagogickým v Praze.
Toky v sítích.
Přednášky z Distribuovaných systémů
Transkript prezentace:

Zablokování Současně běží více procesů požadujících přidělení určitých prostředků výpočetního systému a převedených do stavu blokovaných procesů – tj. čekají, Vznik problému: proces drží určité prostředky, požaduje přidělení dalších prostředků, tyto nedostane a je převeden do stavu blokovaných procesů, přičemž drží nadále již dříve přidělené prostředky požadované jinými (čekajícími) procesy.

Zablokování Vznik takové situace = zablokování (uváznutí), deadlock ? Okolnosti, kdy k takové situaci může dojít ? Jak vzniku takové situace předejít ? Jak takovou situaci pokud již vznikla řešit

Okolnosti vzniku zablokování Nemůže vzniknout v systémech s jedním procesem, Multiprocesové systémy: typicky běžící procesy soutěží o přidělení prostředků. Běžící proces může prostředky požadovat: Explicitně (během své existence) Implicitně (během svého vzniku)

Okolnosti vzniku zablokování Existence prostředků, které může v určitém okamžiku používat jej jeden proces (periferní zařízení, některé datové struktury), Požadavek některých procesů využívat více prostředků současně (požadavek exkluzivního přístupu k několika prostředkům současně),

Okolnosti vzniku zablokování Prostředky dvou typů: Odejmutelné (preemptable) – mohou být procesu odebrány aniž dojde k nevratnému narušení dalšího korektního chodu procesu (procesor, paměť), Neodejmutelné (nonpreemptable) – nelze procesu odejmout, aniž by nedošlo ke vzniku chyby v chodu procesu nebo výsledku činnosti (tiskárna)

Okolnosti vzniku zablokování Situace zablokování je spojena s existencí neodejmutelných a sdílených prostředků

Okolnosti vzniku zablokování Situace zablokování se tedy týká procesů, které pracují s prostředky, které v daném okamžiku může používat pouze jeden proces a které jsou neodejmutelné.

Definice zablokování Lze definovat jako stav, v němž dva nebo více procesů čeká na splnění podmínky, která nemůže nikdy nastat. Důvodem této nemožnosti však musí být to, že tuto podmínku, na jejíž splnění čeká určitý proces, může splnit pouze jiný proces ze skupiny zablokovaných procesů – tedy proces nacházející se ve stejné situaci Důležitý moment zablokování=společné čekání

Definice zablokování Množina procesů je zablokována, pokud každý proces z této množiny čeká na událost, kterou může způsobit pouze jiný proces z této množiny.

Podmínky pro vznik zablokování Coffman, Elphick a Shoshani (1971) identifikovali 4 nutné podmínky, které musí být splněny současně pro vznik zablokování Vzájemné vyloučení při přidělování prostředků, Postupné přidělování prostředků, Neodnímatelnost přidělených prostředků, Vznik kruhového čekání

Podmínky pro vznik zablokování I. Podmínka vzájemného vyloučení při přidělování prostředků (mutual exclusion condition) = v systému existují prostředky, které mohou být v daném okamžiku přiděleny nejvýše jednomu procesu (nebo jsou volné)

Podmínky pro vznik zablokování II. Podmínka postupného přidělování prostředků (hold and wait) = V systému je možné prostředky přidělovat postupně aniž by proces musel uvolnit dříve získané prostředky, procesy s již přidělenými prostředky se mohou snažit o přidělení dalších

Podmínky pro vznik zablokování III. Podmínka neodnímatelnosti přidělených prostředků, = přidělený prostředek nemůže být procesu odejmut do té doby, dokud proces nedokončil používání tohoto prostředku a dokud tedy proces sám neuvolní používaný prostředek

Podmínky pro vznik zablokování IV. Podmínky vzniku kruhového čekání =musí existovat množina (nejméně dvou) čekajících procesů, kde proces P0 čeká na prostředek držený procesem P1, proces P1 čeká na prostředek používaný procesem P2 a tak dále až k procesu Pn, který čeká na prostředek používaný procesem P0

Modelování zablokování Pomocí orientovaných grafů Orientovaný graf pracuje s uzly dvou typů: kroužek=proces čtverec=prostředek

Modelování zablokování Mezi jednotlivými uzly jsou orientované hrany: Hrana směřující od procesu k prostředku představuje žádost o přidělení prostředku

Modelování zablokování Hrana směřující od prostředku k procesu znamená, že daný prostředek byl procesu přidělen a proces ho používá:

Modelování zablokování Uvedené zobrazení je také označováno jako graf přidělení systémových prostředků (system resource allocation graph),

Modelování zablokování „deadlock“ A T U B

Modelování zablokování Více instancí téhož prostředku je možné vyznačit tečkami ve čtvercovém uzlu:

Modelování zablokování V grafu není kružnice  zablokování nedošlo V grafu je kružnice  k zablokování mohlo dojít

Modelování zablokování P2 R1 P1 P3 R2 P4

Modelování zablokování Příklad: 3 procesy A, B a C a tři prostředky R, S a T. (problém 3 filozofů) B A C S T R

Modelování zablokování Sekvenční průběh procesů A,B,C  nedojde k zablokování, leč neefektivní Paralelní průběh  může vést ke zablokování

Modelování zablokování Lze ukázat možnost, jak se vyhnout zablokování: Nechť systém umí detekovat možnost vzniku zablokování  v rámci plánování procesů vynechá proces B Důsledky: nedojde k přidělení prostředků S a T, poběží nejdříve pouze procesy A a C, přidělení prostředků pro proces B je možné provést až po dokončení procesů A a C

Metody (strategie) řešení problému zablokování: 3 přístupy: Ignorování existence problému, Volba takového postupu, aby k zablokování nemohlo dojít: Předcházením zablokování (deadlock prevention) Vyhnutí se zablokování (deadlock avoidance) Připustit vznik zablokování, ale použitím metod detekce jej detekovat a následně provést zásah směřující k odstranění zablokování – tj. provedení obnovy (zotavení systému) – detection and recovery

Metody řešení problému zablokování: I. Ignorování problému (pštrosí algoritmus) Počítá se s možností vzniku zablokování – úvahy o pravděpodobnosti (matematické hledisko, inženýrské hledisko, dle určení systému, rovnováha nákladů na řešení (větší režie systému) vs. přínosy

Metody řešení problému zablokování: IIa. Předcházení (prevence) zablokování – deadlock prevention. Založeno na existenci 4 nutných podmínek pro vznik zablokování Často používaná metoda (nízká režie) Hlavní nevýhoda=nízká míra využití prostředků

Metody řešení problému zablokování: Strategie 1: Každý proces musí požadovat všechny prostředky, které bude potřebovat, naráz (a dokud je nedostane, nemůže pokračovat v běhu), Strategie 2: Pokud proces, který již drží nějaké prostředky, požaduje přidělení dalších prostředků a toto mu bylo odmítnuto, musí nejdříve vrátit všechny prostředky, které drží, a teprve poté o ně znovu požádat,

Metody řešení problému zablokování: Strategie 3: Musí být zajištěno přidělování prostředků podle lineárního uspořádání prostředků (proces může obdržet požadovaný prostředek pouze tehdy, je-li v daném uspořádání prostředků požadovaný prostředek zařazen výše než kterýkoliv z prostředků, které již proces má přidělen).

Metody řešení problému zablokování: Prolomení některé z nutných podmínek: A) Podmínka vzájemného vyloučení V řadě případů nelze využít, platí však zásada, že pokud to není nezbytně nutné nemá se používat vzájemné vyloučení

Metody řešení problému zablokování: B) podmínka postupného přidělování prostředků (hold and wait condition): 1. strategie Metoda úplného počátečního přidělení všech sdílených prostředků Bezpečná a jednoduchá metoda Nevýhoda: seznam požadovaných prostředků musí být znám již při vzniku procesu, nízké využití prostředků, součet požadavků všech procesů <= celkové kapacitě prostředků systému

Metody řešení problému zablokování: C) podmínka neodnímatelnosti přidělených prostředků (no preemption condition) 2. strategie Zavedení pravidla požadujícího, aby proces, který již má přiděleny nějaké prostředky a požaduje přidělení dalších prostředků nejdříve vrátil všechny dříve přidělené prostředky a teprve následně požádal o přidělení (všech) prostředků,

Metody řešení problému zablokování: D) Podmínka vzniku kruhového čekání (circular wait condition) Nejtriviálněji: proces může mít přidělen jen jeden prostředek 3. strategie – přidělované prostředky jsou uspořádány do lineárního systému (například očíslováním) a proces musí žádat o přidělení prostředků v určitém předepsaném pořadí.

Metody řešení problému zablokování: Tj. prostředky byly uspořádány do určité hierarchie (řady) a proces držící určitý prostředek může požádat pouze o prostředek, který stojí v dané hieararchii výše Důsledek: nemůže dojít ke vzniku kružnice v grafu přidělení prostředků

Metody řešení problému zablokování: Problémy: Stanovení vhodného uspořádání pro různé prostředky (během instalace systému, jak se změní po doplnění dalšího prostředku)

Metody řešení problému zablokování: IIb. Vyhnutí se zablokování (deadlock avoidance) Založena na představě, že systém bude umět rozpoznat, zda je „bezpečné“ vyhovět požadavku procesu o přidělení prostředků, a že toto přidělení provede pouze za situace, kdy je přidělení bezpečné Vyžaduje předem znalost určitých informací

Metody řešení problému zablokování: Metoda je tedy založena na vyhnutí se zablokování pečlivým přidělováním prostředků. Pracuje s tzv. postupovou dráhou („trajektorií prostředků“) a pojmy „bezpečný stav“ a „nebezpečný stav“

P2 T N D P t T P1 P

Metody řešení problému zablokování: V bodě „t“ musí systém rozhodnout, zda procesu P2 přidělí plotter (a dojde k zablokování) nebo proces P2 odloží, přidělí (časem) plotter procesu P1 (a vyhne se tak zablokování).

Metody řešení problému zablokování: „bezpečný stav“: stav, kdy procesy nejsou zablokované a existuje cesta (trajektorie) jak uspokojit všechny požadavky běžících procesů ve vhodném pořadí. Pokud taková cesta není, je stav „nebezpečný“ (což neznamená, že jsou procesy zablokované a že k zablokování nutně musí dojít)

Metody řešení problému zablokování: Procesy: Má Chce A 3 9 - B 2 4 C 7 Volné 1 5 10 Celkem prostředků=10 Je to bezpečný stav

Metody řešení problému zablokování: Procesy: Má Chce A 3 9 4 B 2 - C 7 6 Volné Celkem prostředků=10 Není to bezpečný stav

Metody řešení problému zablokování: Nejznámější příklad: Dijkstra – bankéřův algoritmus (pro jeden prostředek): 4 zákazníci A,B,C,D, každý má u bankéře různou (momentální) výši úvěru a max. úvěrový limit (potřebný pro realizaci jejich podnikatelských záměrů). Bankéř počítá s tím, že ne všichni zákazníci budou chtít naráz maximální výši úvěru.

Metody řešení problému zablokování: Bankéř (operační systém) sleduje v každém okamžiku, zda uspokojení požadavku některého zákazníka (přidělení úvěru až do výše max.limitu) povede k bezpečnému stavu – pouze v tomto případě přidělení také provede.

Metody řešení problému zablokování: Procesy: Má Chce A 6 1 B 5 2 C 4 D 7 Volné 10 22 Celkem prostředků=10 Není to bezpečný stav

Metody řešení problému zablokování: Správný postup bankéře (vedoucí opět do bezpečného stavu): přidělit prostředky zákazníkovi C, odložit žádosti zákazníků A,B a D Chybný postup (vedoucí do nebezpečného stavu): přidělit prostředky zákazníkovi B (bankéř po tomto přídělu nemá dost volných prostředků, aby s jistotou uspokojil požadavky ostatních zákazníků (procesů)

Metody řešení problému zablokování: Algoritmus je vhodný v případě, že je známo maximální množství požadovaných prostředků Bankéřův algoritmus pro více prostředků Algoritmus lze zobecnit pro více prostředků, Zavede se matice pro evidenci přidělených prostředků, matici pro evidence požadovaných prostřeků a tři vektory: existující prostředky, přidělené prostředky a volné prostředky

Metody řešení problému zablokování: Postup: porovnávají se řádky matice požadovaných prostředků s vektorem volných prostředků, pokud neexistuje řádek menší než vektor, došlo k zablokování. Pokud ano, pak dojde k přidělení, po dokončení jsou všechny přidělené prostředky uvolněny – což se projeví v úpravě matice přidělených prostředků a vektoru volných prostředků.

Metody řešení problému zablokování: Zásadní nevýhoda: procesy obvykle neví předem, kolik prostředků ani kolik maximálně prostředků budou požadovat, Počet procesů navíc není konstantní Ani počet zdrojů nemusí být konstatní

Metody řešení problému zablokování: III. Detekce a zotavení. Systém se nepokouší zablokování zabránit, ale snaží se detekovat jeho vznik a poté odstranit, Jak detekce zablokování tak odstranění zablokování znamená režii, Způsoby detekce: např. graf přidělování prostředků (algoritmus pro detekci cyklů v grafu)

Metody řešení problému zablokování: Zotavení: Využitím preempce (odebráním prostředku některému procesu z množiny procesů, které jsou zablokovány) Využitím systému kontrolních bodů (checkpointů), stav systému periodicky zaznamenáván, v případě vzniku zablokování je proces, který drží prostředek, u něhož požadavek na přidělení vedl k zablokování, vrácen zpět do jednoho ze stavů z doby před přidělením tohoto prostředku, Likvidací některého z procesů

Metody řešení problému zablokování: Detekce je možná vždy, obnovení není vždy možné. Značná režie

Metody řešení problému zablokování: Kombinovaný přístup: Žádný z uvedených algoritmů sám není vhodný pro celé spektrum problémů přidělování zdrojů v operačním systému, Pro každou třídu problémů je vhodné použít různou startegii