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

Slides:



Advertisements
Podobné prezentace
Strategické řízení školy s využitím sebehodnocení školy dle modelu CAF RNDr. Hana Žufanová.
Advertisements

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.
Petr Krčmář Virtualizace (především linuxová) InstallFest 2011.
Počítačové sítě 8. Využití sítí © Milan Keršlágerhttp:// Obsah: ● sdílení v sítích.
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.
Elektronické učební materiály - II. stupeň Digitální technologie 9 Autor: Bc. Pavel Šiktanc Movie Maker uložení a sdílení filmů Co se všechno naučíme???
OPERAČNÍ SYSTÉMY Část 3 – správa procesů Zpracovala: Mgr. Marcela Cvrkalová Střední škola informačních technologií a sociální péče, Brno, Purkyňova 97.
Novelizace předpisu D7/2 k organizování výlukových činností k Lenka Komínová GŘ SŽDC Odbor plánování a koordinace výluk Setkání s dopravci,
Operační program Vzdělávání pro konkurenceschopnost Název projektu: Inovace magisterského studijního programu Fakulty ekonomiky a managementu Registrační.
Maticové počítače. Při operacích s maticí se větší počet prvků matice zpracovává současně a to při stejné operaci. Proto se pro tyto operace hodí nejlépe.
ZAL – 5. cvičení Martin Tomášek Pole - opakování Základní datový typ. V poli držíme více elementů (jednoho typu) S elementy v poli můžeme manipulovat.
Tabulkový procesor Odebrání skrytých dat a osobních informací kontrolou sešitů Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Růžena Hynková.
Síťové operační systémy OB21-OP-EL-KON-DOL-M Orbis pictus 21. století.
Počitačová bezpečnost - je obor informatiky, který se zabývá zabezpečením informací v počítačích (odhalení a zmenšení rizik spojených s používáním počítače).
Projekt MŠMTEU peníze středním školám Název projektu školyICT do života školy Registrační číslo projektuCZ.1.07/1.5.00/ ŠablonaIII/2 Sada44 Anotace.
Operační systémy Souběh a uváznutí © Milan Keršláger
Projekt: Škola pro život Registrační číslo: CZ.1.07/1.4.00/ Číslo DUM: VY_32_INOVACE_02-informatika 8. třída_021 Základní škola: Základní škola.
Operační systémy 10. Souběh a uváznutí
Software =je v informatice sada všech počítačových programů používaných v počítači, které provádějí nějakou činnost. - Software je protiklad k hardwaru,
Databáze © Mgr. Petr Loskot
Architektura operačních systémů
Počítačová bezpečnost 2. Bezpečnost v OS
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: 
Počítačová bezpečnost Cvičení 2: Procesy a oprávnění
Systémové databáze v SQL Serveru
ZÁKLADY ÚČETNICTVÍ A PODVOJNÝ ZÁPIS
UNIX 12. Komunikace mezi procesy
Operační systémy 9. Spolupráce mezi procesy
Software počítače – opakování
Operační systémy Hardwarové prostředky využívané počítačem
Operační systémy Soubory a adresáře
Rozhodování 1.
Batové dávky Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Vojtěch Mrózek. Dostupné z Metodického portálu ISSN: ,
OPERAČNÍ SYSTÉMY Část 1 – úloha OS Zpracovala: Mgr. Marcela Cvrkalová
Správa paměti - úvod 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: 
1. ročník oboru Mechanik opravář motorových vozidel
Obrázky Ram Rom Nástupci ROM Počítačová pamět Obrázky Paměti Ram rom
SPRÁVCE ÚLOH Adéla Veselá 1. A.
Financováno z ESF a státního rozpočtu ČR.
Programování a simulace CNC strojů I.
Programování v jazyce C++
Počítačová bezpečnost 2. Bezpečnost v OS
Inf Tabulkový procesor - formátování
Databáze MS ACCESS 2010.
Mikroprocesor.
Financováno z ESF a státního rozpočtu ČR.
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: 
C# Vícevláknové aplikace
Poměr v základním tvaru.
Název školy Gymnázium, střední odborná škola, střední odborné učiliště a vyšší odborná škola, Hořice Číslo projektu CZ.1.07/1.5.00/ Název materiálu.
ZÁKLADNÍ ŠKOLA, JIČÍN, HUSOVA 170 Číslo projektu
1. ročník oboru Mechanik opravář motorových vozidel
Plánová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: 
Schvalovací proces + hodnoticí kritéria
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: 
Základy účetnictví změny rozvahových položek
ŠABLONY PRO STŘEDNÍ ŠKOLY
Programovatelné automaty (Programmable logic controllers – PLC)
Materiál byl vytvořen v rámci projektu
Remote login.
Název školy: Autor: Název: Číslo projektu: Název projektu:
Název projektu | Název společnosti | Jméno prezentujícího
Číslo projektu Číslo materiálu název školy Autor Tematický celek
Poměr v základním tvaru.
Seminář AMG, Písek 2018 GDPR.
Analýza informačního systému
Seminář o stavebním spoření
Procesy – základní pojmy
Algoritmizace a datové struktury (14ASD)
Digitální učební materiál
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 8.3.2012 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 data mohou být uložena různě: data operačního systému: paměť jádra OS uživatelská data: soubor, sdílená paměť thready: z principu mají sdílenou paměť

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 – 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 nutnost atomické operace (typicky v jádru OS) přístup do SQL databáze aktualizace několika položek → nekonzistence dat ne vše lze vyřešit jako jedinou SQL instrukci používá se zamykání (viz dále), problém uváznutí

Pojmy pro popis souběhu kritická oblast data sdílena několika procesy (vlákny) 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 řešení: atomická operace nebo omezení vstupu do kritické sekce

Atomická operace proběhne jako jeden celek operaci nelze přerušit výsledek (všechny výsledky) se projeví najednou typicky jedna strojová instrukce delší (složitější) operace nejsou atomické atomicitu je možné zajistit dalšími prostředky jeden CPU: operace je pak zdánlivě atomická vícejádrový systém zdánlivá atomicita operace problém neřeší řešení: budeme chránit data

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 zákaz přerušení používá se běžně v jádře OS (je-li jen jeden CPU) při multitaskingu to nelze procesům dovolit kritickou sekci by nešlo realizovat v běžném procesu instrukce TSL lze implementovat hardwarově i softwarově TSL může být strojová instrukce CPU neodstraňuje problém aktivního čekání semafory univerzálnější, ale složitější implementace

Zákaz přerušení znemožní přepnutí kontextu lze ohraničit kritickou sekci na začátku zákaz, na konci povolení přerušení je to však privilegovaná instrukce její použití může zablokovat počítač nelze použít u preemptivního multitaskingu vyhrazena 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

Instrukce TSL „Test and Set Lock“ nastaví proměnnou a vrátí její původní hodnotu celá 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

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) operace Down se zablokuje, je-li proměnná <=0 je-li > 0, pak je snížena a ukončena (vstup povolen) operace Up (V) 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() 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

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

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)

Řešení uváznutí ignorování uváznutí používá se v unixový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 jeho odstranění znemožní uváznutí soubory zpřístupnění souborů jen pro čtení 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ů narušením je možné předejít uváznutí 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. 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í