Operační systémy 10. Souběh a uváznutí

Slides:



Advertisements
Podobné prezentace
Obecně o operačních systémech
Advertisements

SOFTWARE dálkové studium PODNIKÁNÍ 2. listopad 2006.
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ů.
Doplňující referát k přednášce Transakce Šárka Hlušičková
Vzdělávací materiál / DUMVY_32_INOVACE_02B5 Správa pamětí AutorIng. Petr Haman Období vytvořeníčerven 2013 Ročník / věková kategorie2. ročník Vyučovací.
Maturitní okruh č. 7. Odstínit aplikace od specifik HWSpráva procesůSpráva pamětiSpráva souborůSpráva vstupů a výstupůSpráva sítěSystém ochrany a bezpečnostiSystém.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
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.
Operační systémy.
Výrok „Počítač je pouze tak inteligentní jako jeho uživatel.“ (Radek Lochman, dnes)
Databázové systémy Architektury DBS.
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,
Správa procesů.
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
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.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Zablokování (deadlock, smrtelné objetí, uváznutí)
Operační systémy Mgr. Ludmila Faltýnková EU OPVK ICT2-4/Inf12 Základní škola Olomouc, Heyrovského 33 Určeno pouze pro výuku Žádná část ani celek nesmí.
OPERAČNÍ SYSTÉMY (OS): Programy, které obsluhují základní rutiny počítače a bez nichž by žádný další program nemohl na počítači běžet. Konkrétní programy.
Správa procesů.
A4B33OSS (J. Lažanský) verze: Podzim 2013 Meziprocesní komunikace a synchronizace procesů 1 Obsah Téma 5 – Synchronizace procesů a problém uváznutí 1.Problém.
3. konzultace (5 hodin) Studijní materiály najdete na adrese:
13AMP 4. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Problém sdílených zdrojů Problém sdílených zdrojů Co je to kritická sekce Co.
Vnitřní (operační paměť)
Co je to OS Správce prostředků –spravuje a přiděluje systémové zdroje systému úlohám, stará se o jejich efektivní sdílení procesoru (ů) operační paměti.
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
A3B33OSD (J. Lažanský) verze: Jaro 2013 Synchronizace procesů a problém uváznutí 1 Obsah Téma 5 – Synchronizace procesů a problém uváznutí 1.Problém soupeření,
doc. RNDr. Zdeněk Botek, CSc.
Základy operačních systémů Meziprocesová komunikace a synchronizace Jakub Yaghob.
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.
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
Základy operačních systémů
OPERAČNÍ SYSTÉMY učební text pro žáky SŠ.
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.
ÚVOD DO PŘEDMĚTU INFORMAČNÍ TECHNOLOGIE. OPERAČNÍ SYSTÉM Je v informatice základní programové vybavení počítače (tj. software), které je zavedeno do paměti.
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.
Optimistic and pessimistic offline lock. Naivní přístup:  Uživatel A načte data  Uživatel B načte (stejná) data  Uživatel A upraví data a uloží je.
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.
UNIX 12. Komunikace mezi procesy © Milan Keršláger
UNIX 12. Komunikace mezi procesy © Milan Keršlágerhttp:// Obsah: ● meziprocesová.
Operační systémy Souběh a uváznutí © Milan Keršláger
Stránkování MATĚJ JURIČIČ 2015/2016 EP1 SPŠ A VOŠ JANA PALACHA KLADNO.
Vypracoval / Roman Málek
Zvídavé otázky 1. Prevence a detekce uváznutí
Služby Windows Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Operační Systém Operační systém je v informatice základní programové vybavení počítače (tj. software), které je zavedeno do paměti počítače při jeho.
OPERAČNÍ SYSTÉMY Číslo projektu CZ.1.07/1.5.00/ Název školy
Vlastnosti souborů Jaroslava Černá.
Operační systémy - úvod
Soubor Soubor v informatice označuje pojmenovanou sadu dat uloženou na nějakém datovém médiu, se kterou lze pracovat nástroji operačního systému jako.
DIGITÁLNÍ UČEBNÍ MATERIÁL
1. ročník oboru Mechanik opravář motorových vozidel
Název školy: ZŠ Bor, okres Tachov, příspěvková organizace
Operační systémy 9. Spolupráce mezi procesy
Operační systémy 10. Souběh a uváznutí
Souběh Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Správa paměti.
Segmentace Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
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.
Instalace OS Linux Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Operační systémy.
Přepínání procesů Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Paměť.
Správa procesů.
Monitor Object 1.
Transkript prezentace:

Operační systémy 10. Souběh a uváznutí Obsah: souběh kritická sekce, kritická oblast atomická operace zákaz přerušení, instrukce TSL, semafory problém aktivního čekání uváznutí, podmínky uváznutí řešení uváznutí (ignorování, předcházení, vyhýbání, detekce) © Milan Keršláger http://www.pslib.cz/ke/slajdy 26. 2. 2015 http://creativecommons.org/licenses/by-nc-nd/3.0/

Souběh

Souběh vzniká v případě, že dva nebo více procesů modifikuje stejná data pokud by procesy byly spuštěny samostatně, k problému by nedošlo → vznikají mysteriózní chyby k souběhu může dojít v různých situacích práce s daty operačního systému datové struktury jádra (uloženy v RAM) práce se soubory přístup ke společným datům přes počítačovou síť sdílená paměť při multitaskingu, při používání threadů

Souběh – ze života sekretářka přidává všem zaměstnancům 100 Kč její program načte sdílená data sekretářka přičte 100 Kč data jsou uložena do sdíleného úložiště šéf se rozhoduje o přidělení prémie 500 Kč sekretářka načte další, ale odejde udělat kafe šéf načte stejná data, přičte 500 a data uloží sekretářka přijde, přičte 100 k původní částce sekretářka přepíše výsledek, 500 Kč se ztratí

Souběh – v programování vytváření souborů soubor musí mít v adresáři unikátní jméno nové nejprve testujeme, pak teprve vytváříme může dojít k přerušení mezi testem a vytvořením přístup do SQL databáze aktualizace několika položek → nekonzistence dat ne vše lze vyřešit jako jedinou SQL instrukci

Souběh v programování řešení souběhu: atomické operace k vykonání operace musí stačit jedna strojová instrukce lze použít jen výjimečně → obvykle je potřeba mnoho instrukcí zajištění výhradního přístupu tzv. zamykání k tomu se používají různé prostředky:

Pojmy pro popis souběhu kritická oblast data sdílena několika procesy (thready) kritická sekce nejmenší část programu pracující s kritickou oblastí může do ní vstoupit maximálně jeden proces při řízení přístupu do kritické sekce tři problémy: zajištění výhradního přístupu vývoj omezené čekání musí být provedena jako jeden celek

Kritická sekce musí vyřešit: zajištění výhradního přístupu v kritické sekci vždy nejvýše jeden proces vývoj rozhodování o vstupu do kritické sekce nelze odkládat rozhodnutí o procesu do nekonečna → např. striktní alternace omezené čekání střídání dvou procesů nemůže vyřadit třetí proces → dovolíme maximálně jeden vstup za obrátku

Zajištění výhradního přístupu atomická operace lze využít jen výjimečně zákaz přerušení používá se běžně v jádře OS instrukce TSL neodstraňuje problém aktivního čekání semafory univerzálnější, ale složitější implementace RCU (Read-Copy-Update)

Atomická operace tj. operace proběhne jako jeden celek operaci nelze přerušit výsledek (všechny výsledky) se projeví najednou typicky jedna strojová instrukce více strojových instrukcí zde nastane problém → možnost vnějšího přerušení zdánlivou atomicitu je nutné zajistit jinak víceprocesorový systém zdánlivá ani skutečná atomicita problém neřeší řešení: je nutné zaměřit se na ochranu dat

Zákaz přerušení atomická operace z více strojových instrukcí zákaz přerušení znemožní přepnutí kontextu tj. před kritickou sekcí zákaz, za ní povolení přerušení z více strojových instrukcí vznikne jedna „atomická“ NEŘEŠÍ to problém na víceprocesorových strojích zákaz přerušení je privilegovaná instrukce (!) její použití může zablokovat počítač v procesu nelze použít u preemptivního multitaskingu zákaz přerušení je vyhrazeno jen pro jádro operačního systému procesům musíme nabídnout jiné řešení běžně se používá uvnitř jádra OS i tak je to nebezpečné a neřeší to problém aktivní čekání

Synchronizační primitiva zámek semafor

Instrukce TSL „Test and Set Lock“ nastaví proměnnou a vrátí její původní hodnotu celá tato akce musí být nepřerušitelná po výstupu z kritické sekce → proměnná na „false“ implementace v CPU speciální strojová instrukce instrukce prohození obsahu paměti s registrem strojové instrukce SWAP, XCHG softwarová implementace využijeme zákaz přerušení → služba jádra OS

Použití TSL TSL je před vstupem do kritické sekce nastaví proměnnou Lock na pravdu (zamčeno) vrátí předchozí stav této proměnné TSL umisťujeme do čekací smyčky → aktivní čekání na konci kritické sekce: proměnná je Lock nastavena na nepravdu (odemčeno) while TestAndSet(Lock) do { nothing }; ...kód kritické sekce... Lock:=false;

Semafory 1965 – popsal Dijkstra proměnná boolean z TSL nahrazena čítačem do kritické sekce lze vpustit více procesů je-li větší, než 0, je vstup umožněn při výstupu zvýšena hodnota proměnné o 1 operace Down (P) → před kritickou sekcí operace Down se zablokuje, je-li proměnná <= 0 je-li > 0, pak je snížena a ukončena (vstup povolen) operace Up (V) → na konci kritické sekce proměnná je zvýšena o 1 stále problém aktivního čekání

Čekání před kritickou sekcí aktivní čekání realizováno jako smyčka (neustále testování) zbytečně spotřebovává čas procesoru není vhodné pro víceúlohové systémy výhodné pro krátkodobé čekání tzv. spinlock() → např. v jádře Linuxu pasivní čekání realizováno frontou čekajících procesů odstraňuje problém aktivního čekání podobně jako blokování procesů při I/O

B: Pasivní čekání odstraňuje problémy aktivního čekání čekající proces nemá spotřebovávat čas CPU vytvoříme frontu čekajících procesů zablokovaný proces odsunut do fronty využijeme funkci jádra → sleep() nebo přesuneme proces mezi blokované při výstupu z kritické sekce volání průchodu frontou tj. rozšíříme funkci Up (resp. V) o obsluhu fronty (to znamená probudit spící proces, který čeká na uvolnění zámku, který blokuje vstup do kritické sekce)

RCU

Uváznutí

Uváznutí – deadlock dva nebo více procesů čeká na událost, ke které by došlo jen pokud by jeden z nich mohl pokračovat souvisí se zamykáním (viz dříve souběh) je možná detekce uváznutí čekání ukončí buď OS nebo správce problém uváznutí v jádře OS → reboot v běžném životě se řeší couváním program (resp. CPU) couvat neumí couvat umí SQL server (rollback)

Uváznutí (v dopravě)

Uváznutí (v počítači) nastane, když je nevhodná obsluha I/O A tiskne na tiskárnu → výhradní přístup B čte z diskety → výhradní přístup A potřebuje načíst další data z diskety → čeká na uvolnění diskety B potřebuje vytisknout data na tiskárnu → čeká na uvolnění tiskárny došlo k vzájemnému čekání → uváznutí

Řešení uváznutí ignorování uváznutí používá se v běžných operačních systémech většina subsystémů pomocí předcházení uváznutí uživatel (nebo správce) jeden proces ukončí předcházení uváznutí zabráníme splnění alespoň 1 z podmínek uváznutí vyhýbání se uváznutí systém zjišťuje, zda přidělením nezpůsobí uváznutí může být komplikované detekovat a zotavit se

B: Předcházení uváznutí stačí odstranit jednu z podmínek uváznutí: výlučný přístup existence nesdílitelných prostředků postupné přidělování prostředků nežádá se o všechny prostředky najednou, ale postupně není-li prostředek dostupný, musí se čekat přidělování bez preempce přidělený prostředek nelze procesu odebrat cyklické čekání

1: Výlučný přístup odstranění výlučného přístupu lze při: práce se soubory operace zápisu je výlučný přístup (kvůli souběhu) práce s I/O zařízeními tiskárna, externí disk, USB flash, ... odstranění pomocí virtualizace prostředků tzv. spooling (simultaneous peripherial output on-line) např. vytvoření fronty pro tiskárny, frontu obsluhuje jen jeden proces (démon) pro některé prostředky nelze použít (CPU, RAM)

2: Postupné přidělování prostředků znemožnění postupného přidělování prostředků jednorázové přidělování prostředků jen při startu procesu, později už nic nepřidělíme nejsou-li přiděleny, musí proces čekat přidělování jen pokud proces žádné nemá proces musí všechny přidělené vrátit a pak požádat nevýhody: plýtvání prostředky (nejsou potřeba celou dobu) stárnutí procesů – bude-li usilovat o často používané prostředky, nemusí se dočkat

3: Preempce zavedení preemptivní správy prostředků preempce → násilné odebrání prostředku odebírat lze jen prostředky, u kterých lze snadno obnovit původní stav → nelze např. tiskárnu takto lze přidělovat procesor nebo paměť jediná reálně použitelná strategie

4: Cyklické čekání cyklické čekání odstranění očíslováním prostředků proces může žádat pouze o ty s vyšším číslem prostředky se stejným číslem pouze najednou

C: Vyhýbání se uváznutí při žádosti o prostředek se kontroluje, jestli po přidělení prostředku existuje alespoň jeden proces, který lze dokončit po jeho dokončení musí existovat alespoň jeden další atd. používá se tzv. Bankéřův algoritmus proces deklaruje maximální požadavky systém si musí ponechat prostředky alespoň pro uspokojení jediného procesu po ukončení jsou uvolněny další prostředky pro uspokojení dalších procesů (nutno pro všechny)

D: Detekce a zotavení údržba grafu přidělených prostředků pokud je v grafu cyklus → došlo k uváznutí komplikace: některý prostředek existuje ve více exemplářích a procesy pak nežádají o konkrétní exemplář používá se např. u SQL serverů rollback jednoho z procesů, pak pokračování

Souběh v SQL

PHP

Uváznutí