Principy počítačů a operačních systémů
|
|
- Renata Moravcová
- před 9 lety
- Počet zobrazení:
Transkript
1 Principy počítačů a operačních systémů Operační systémy Synchronizace procesů, zablokování Zimní semestr 2011/2012
2 Přístup ke sdíleným datům
3 Terminologie: souběžné vs. paralelní zpracování Paralelní provádění (parallel execution) více činností na různých místech současně v daném okamžiku více než 1 aktivní vlákno nastává pouze na víceprocesorovém stroji Souběžné provádění (concurrent execution) více činností na různých místech prokládaně v daném okamžiku pouze 1 aktivní vlákno může nastat i na jednoprocesorovém stroji 3/41 - OS - synchronizace
4 Implicitní sdílení dat OS Datové struktury OS souborový systém, síťový stack, správa procesů,... Modifikace datových struktur v reakci na události synchronní události: systémová volání procesy volají služby operačního systému asynchronní události: přerušení OS přijímá data ze sítě, klávesnice,..., obsluhuje zařízení v kódu OS může být více vláken současně Operační systém musí být reentrantní... podpora souběžného zpracování více událostí nutná podmínka pro paralelní zpracování 4/41 - OS - synchronizace
5 Explicitní sdílení dat procesu Datové struktury procesů seznamy, stromy, grafy, fronty,... Souběžný přístup k datovým strukturám implicitně v rámci procesu vlákna jednoho procesu vidí stejnou paměť explicitně mezi procesy procesy komunikující prostřednictvím sdílené paměti Přístup k datům je nutno synchronizovat... nutná podmínka pro korektní výpočet 5/41 - OS - synchronizace
6 Časové závislé chyby (race conditions) Operace nad daty před začátkem a po skončení operace musí být data v konzistentním stavu, během provádění operace mohou být data dočasně v nekonzistentním stavu Pokud operace sestává z více kroků... při souběžném přístupu více vláken může dojít k promíchání kroků z různých operací proces/vlákno přeplánován uprostřed operace problém pokud s jednou datovou strukturou pracuje více vláken/procesů k přeplánování může dojít při nekonzistentním stavu dat výsledek operací závisí na pořadí běhu vláken/procesů 6/41 - OS - synchronizace
7 Příklad: operace se spojovým seznamem Operace vložení prvku do seznamu přidání new do seznamu head1 za current1 1. krok new->next = current->next; new head1 current1 2. krok current1->next = new; new head1 current1 7/41 - OS - synchronizace
8 8/41 - OS - synchronizace Příklad: operace se spojovým seznamem 1. vlákno vložení new do head1 za current1 2. vlákno přesun mov z head1 do head2 za current2 1. vlákno přerušeno pro 1. kroku vkládání naplánováno 2. vlákno realizující přesun head1 current1 new mov head2 current2
9 Příklad: operace se spojovým seznamem Operace přesunu prvku mezi seznamy vyjmutí z 1. seznamu + vložení do 2. seznamu 2. vlákno přesun mov z head1 do head2 za current2 current1->next = mov->next; mov->next = current2->next; current2->next = mov; head1 current1 new mov head2 current2 9/41 - OS - synchronizace
10 10/41 - OS - synchronizace Příklad: operace se spojovým seznamem 1. vlákno opět naplánováno po 2. vlákně dokončí vkládání new za current1 head1 current1->next = new; current1 new mov head2 current2
11 Řešení problémů s race condition Atomická změna stavu datové struktury bez ohledu na počet kroků nutných k realizaci dokud není operace dokončena, není možné začít jinou Nutno identifikovat kritické sekce programu begin_critical_section; new->next = current1->next; current1->next = new; end_critical_section; Pouze 1 vlákno smí provádět kód kritické sekce systém zajistí vzájemné vyloučení (mutual exlusion) co třeba zakázat přerušení? 11/41 - OS - synchronizace
12 Realizace vzájemného vyloučení, 1. pokus Zkusíme použít sdílenou proměnnou... boolean locked = FALSE;... while (locked); locked = TRUE; critical section locked = FALSE; Nefunguje! do programu jsme přidali novou race condition původní problém zůstal nevyřešen 12/41 - OS - synchronizace
13 13/41 - OS - synchronizace Realizace vzájemného vyloučení, 2. pokus Použijeme proměnnou pro každý proces... Proces 1 Proces 2 p1_locked = TRUE; p2_locked = TRUE; while (p2_locked); while (p1_locked); critical section critical section p1_locked = FALSE; p2_locked = FALSE; Pořád nefunguje! Ale uz jsme blízko... funguje, když procesy vstupují do KS postupně co když do KS vstupují oba procesy najednou?
14 14/41 - OS - synchronizace Realizace vzájemného vyloučení, 3. pokus Použijeme proměnnou pro každý proces... a navíc budeme sledovat kdo je na tahu Proces 1 Proces 2 p1_locked = TRUE; p2_locked = TRUE; turn = P2; turn = P1; while (p2_locked && turn = P2); while (p1_locked && turn == P1); critical section critical section p1_locked = FALSE; p2_locked = FALSE; Konečně funguje! procesy si dávají přednost, což řeší předchozí deadlock Petersonův algoritmus zobecnění pro N procesů v praxi se používají jiná řešení (s podporou HW)
15 Realizace vzájemného vyloučení s podporou HW Použijeme sdílenou proměnnou... a také speciální instrukci procesoru boolean locked = FALSE;... while (test_and_set (locked)); critical section locked = FALSE; Funguje na poprvé... funkci test_and_set odpovídá instrukce procesoru přečte proměnnou, nastaví ji na TRUE a vrátí původní hodnotu operace je atomická, čtení a zápis jsou neoddělitelné spin-lock: proměnná + operace lock/unlock 15/41 - OS - synchronizace
16 Problém spin-locků Aktivní čekání (busy waiting) při zamčeném zámku procesor nedělá nic užitečného obzvláště markantní na jednoprocesorovém systému, kde zámek nemůže nikdo jiný odemknout Nešlo by to jinak? pasivní čekání pokud je zamčeno, vlákno se uspí (ready blocked) procesor může dělat něco jiného (užitečného) ten kdo odemyká zámek vzbudí uspané vlákno uspání/vzbuzení procesu vyžaduje podporu OS změna stavu vlákna, přeplánování 16/41 - OS - synchronizace
17 Pokus o realizaci pasivního čekání... Použijeme spinlock + operace sleep/wakeup... while (test_and_set (locked)) sleep (queue); critical section locked = FALSE; wakeup (queue);... pochopitelně nefunguje! test a uspání musí být atomické je potřeba zámek k frontě, který se při sleep() odemkne to umí zařídit pouze operační systém OS poskytuje synchronizační primitiva datová struktura + operace 17/41 - OS - synchronizace
18 Pasivní čekání pomocí zámku (mutexu) Operace lock zamkne zámek pokud je odemčený, jinak čeká (pasivně) na odemčení unlock Realizace odemkne zámek a vzbudí čekající proces (pokud existuje) celočíselná proměnná + fronta čekajících procesů zámek je odemčený při hodnotě == 0, jinak je zamčený Typické použití implementace vzájemného vyloučení 18/41 - OS - synchronizace
19 Pasivní čekání pomocí semaforu Operace down (původně P) zabere semafor pokud je volný, jinak čeká na uvolnění up (původně V) Realizace uvolní semafor, vzbudí čekající proces (pokud existuje) celočíselná proměnná + fronta čekajících procesů semafor je zabraný při hodnotě < 1, jinak je volný zabrání semaforu snižuje hodnotu o 1, uvolnění zvyšuje Typické použití reprezentace volných/přidělených prostředků 19/41 - OS - synchronizace
20 Příklad: použití semaforu Problém producent/konzument producent dat, konzument dat, sdílený buffer pokud je buffer plný, producent musí počkat pokud je buffer prázdný, konzument musí počkat #define N 100 semaphore mutex = 1; semaphore empty = N, full = 0; Producent Konzument while (1) { while (1) { // produce item down (full); down (empty); down (mutex); down (mutex); // get item from buffer // put item in buffer up (mutex); up (mutex); up (empty); up (full); // consume item } } 20/41 - OS - synchronizace
21 Realizace semaforu Operace down nutno vyřešit realizaci vnitřní kritické sekce if (--value < 0) block_this_process(); Kontrola hodnoty + zablokování spinlock na strukturu + odemknutí při uspání zavádí aktivní čekaní, kterému jsme se chtěli vyhnout zákaz přerušení na procesoru zajistí atomicitu na velmi hrubé úrovni nefunguje na více procesorech Opět nutná podpora OS... 21/41 - OS - synchronizace
22 Pasivní čekání pomocí monitoru Monitor datová struktura + operace pro čtení/změnu stavu navíc zámek + fronta uspaných procesů konstrukt programovacího jazyka operace ve stejné instanci se vzájemně vylučují Operace wait před vstupem do monitoru je zámek zamčen po opuštění monitoru je zámek odemčen zablokuje volající proces uvnitř monitoru a současně uvolní monitor (odemkne zámek) pro jiný proces Operace signal probudí zablokované procesy, ale neuvolňuje monitor odblokované procesy musí zamknout zámek, aby mohly pokračovat v běhu (uvnitř monitoru) 22/41 - OS - synchronizace
23 Další synchronizační primitiva Read/write zámky rozlišení typu přístupu k datové struktuře čtenářů může být více současně, písař pouze jeden Reentrantní zámky vícenásobné zamknutí v jednom vlákně např. rekurzivní volání jedné funkce Podmínkové proměnné fronta, operace wait + signal, parametrem zámek podobné monitoru: uspání + odemčení zámku používá se explicitně, podobně jako zámky Rendez-vous, bariéry synchronizace postupu vláken kódem např. uspat vlákno, dokud ostatní vlákna nedojdou do stejného místa 23/41 - OS - synchronizace
24 Ekvivalence synchronizačních primitiv Jakmile máme jedno primitivum... můžeme všechna ostatní implementovat pomocí něj... implementace mutexu pomocí semaforu, implementace semaforu pomocí monitoru,... Obecně funguje pouze u sdílené paměti u distribuovaných systémů se situace komplikuje místo datové struktury se ze semaforu stane server požadavky na operace zasílány pomocí zpráv 24/41 - OS - synchronizace
25 Zablokování na sdílených prostředcích
26 Zablokování na sdílených prostředcích Prostředky výpočetní nutné k běhu programu synchronizační nutné ke koordinaci konfliktů Přidělování prostředků OS jako centrální správce prostředků, přiděluje právo používat nějaký prostředek (nebo jeho část, pokud je prostředek dělitelný) k zablokování může dojít v situaci, kdy procesy žádají současné přidělení více prostředků 26/41 - OS - synchronizace
27 Zablokování na sdílených prostředcích Práce s prostředky žádost o prostředek (blokující) použití přiděleného prostředku odevzdání prostředku (dobrovolné, při skončení) Zablokování (deadlock) Množina procesů je zablokována, jestliže 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. 27/41 - OS - synchronizace
28 Příklad: večeřící filozofové 5 filozofů žije pohromadě, čas tráví přemýšlením pokud má filozof hlad, jde se do jídelny najíst v jídelně je prostřeno pro 5 osob, na stole mísa špaget k jídlu je potřeba použít 2 vidličky na stole je ovšem pouze 5 vidliček! V kontextu OS procesů soupeřících o prostředky 3 1 každý prostředek sdílen pouze dvěma procesy /41 - OS - synchronizace
29 Příklad: večeřící filozofové Co se stane, když... dostanou hlad všichni filozofové najednou? všichni si vezmou nejprve vidličku nalevo? #define N 5 void philosopher (int i) { for (;;) { think (); take_fork (i); take_fork ((i + 1) % N); eat (); put_fork (i); 3 1 put_fork ((i + 1) % N); } } /41 - OS - synchronizace
30 Příklad: večeřící filozofové Implementace funkce take_fork() take_fork() je blokovací všichni najednou zvednou svoji levou a čekají na pravou take_fork() je opatrná pokud nemohu vzít druhou vidličku, položím tu první všichni zvednou levou, podívají se doprava, položí levou filosofové pracují ale nenají se livelock + vyhladovění Možná řešení jeden z filozofů vezme vidličky v jiném pořadí do jídelny pustíme nejvýše 4 filozofy současně randomizace časů 30/41 - OS - synchronizace
31 31/41 - OS - synchronizace Formální model zablokování Stav reprezentován orientovaným grafem prostředky R procesy A žádost o prostředek A R vlastnění prostředku S B
32 Formální model zablokování Cyklus v grafu indikuje potenciální deadlock požadavky vyjadřují skutečné potřeby procesu pokud nejsou požadavky uspokojeny, proces je zablokován a čeká na uvolnění prostředku pokud prostředek vlastní jiný proces, který je také zablokován, nemůže dojít k uvolnění prostředku původní proces zůstane zablokován A S R B 32/41 - OS - synchronizace
33 Vznik deadlocku Coffmanovy podmínky při splnění všech podmínek dojde k zablokování Výlučný přístup (Exclusive use) prostředek je přidělen výhradně jednomu procesu Neodnímatelnost (No preemption) přidělené prostředky nemohou být odebrány Drž a čekej (Hold and wait) proces může zároveň držet prostředek a čekat na další Kruhová závislost (Cyclic dependency) procesy čekají na prostředky v kruhu 33/41 - OS - synchronizace
34 Řešení problému zablokování (Statická) prevence deadlocku systém navržen tak, aby některá z Coffmanových podmínek nemohla platit (Dynamické) vyhýbání se deadlocku kontrola žádostí o přidělení prostředků žádosti, které by způsobily deadlock jsou zamítnuty Deadlock detection & recovery umožňuje vznik deadlocku a řeší problém až při jeho vzniku zvyšuje propustnost systému Pštrosí algoritmus problém typicky vyřeší uživatel (kill -9) 34/41 - OS - synchronizace
35 Prevence deadlocku (deadlock( prevention) Zneplatnění některé z Coffmanových podmínek nelze aplikovat obecně, závisí na typu prostředku Výlučný přístup (exclusive use) spooling iluze výlučného přístupu Neodnímatelnost (no preemption) odnímatelné prostředky lze odejmout bez následků procesor (přeplánování), paměť (swapping) neodnímatelné prostředky nelze odejmout bez nebezpečí selhání výpočtu obecně nevhodné z pohledu programátora 35/41 - OS - synchronizace
36 Prevence deadlocku (deadlock( prevention) Drž a čekej (hold and wait) OS vrátí chybu místo zablokování procesu nutno žádat o všechny prostředky najednou před žádostí nutno všechny prostředky uvolnit Kruhová závislost (cyclic dependency) očíslování prostředků + možnost žádat pouze o prostředky s vyšším číslem pořadí nemusí být globální, ale pouze v rámci množiny prostředků sdílených současně v nějakém kontextu zámky v subsystémech operačního systému 36/41 - OS - synchronizace
37 Vyhýbání se deadlocku (deadlock( avoidance) Výchozí stav počet dostupných a přidělených prostředků procesy nejsou zablokovány Následující stav při přidělení dalších prostředků přechod pouze pokud je následující stav bezpečný Bezpečný stav existuje pořadí, v jakém uspokojit všechny procesy Nebezpečný stav uvedené pořadí přidělování prostředků neexistuje 37/41 - OS - synchronizace
38 Deadlock avoidance: bankéřův algoritmus Základní koncept systém má k dispozici prostředky různých typů není možné uspokojit všechny požadavky najednou předpokládá se, že požadavky budou přicházet postupně, a že procesy budou prostředky vracet Dodatečné informace max. počet jednotlivých typů prostředků, o které bude každý proces žádat Bezpečný stav systému je možné plně uspokojit alespoň 1 proces takový proces časem prostředky vrátí 38/41 - OS - synchronizace
39 39/41 - OS - synchronizace Příklad: bankéřův algoritmus Má Max Má Max Má Max A 0 6 A 1 6 A 1 6 B 0 5 B 1 5 B 2 5 C 0 4 C 2 4 C 2 4 D 0 7 D 4 7 D 4 7 Volné: 10 Volné: 2 Volné: 1 bezpečný bezpečný B žádá 1 nebezpečný
40 Detekce a zotavení z deadlocku (detection( & recovery) Problémy bankéřova algoritmu složité rozhodování o přidělení prostředků algoritmus má navíc složitost O(N 2 ) požadované informace jsou typicky nedostupné efektivnější zpravidla bývá řešit až vzniklé problémy typicky používané v databázových systémech vyžaduje detekci a schopnost zotavení Detekce deadlocku (deadlock detection) model závislostí mezi procesy ve formě grafu test na přítomnost kruhových závislostí hledání cyklu v orientovaném grafu 40/41 - OS - synchronizace
41 Zotavení z deadlocku (deadlock( recovery) Odebrání prostředku na přechodnou dobu, pod dohledem operátora Odstranění nepohodlných procesů proces z cyklu závislostí proces mimo cyklus vlastnící identický prostředek Checkpointing/rollback OS ukládá stav procesů restart procesu v předchozím stavu Transakční zpracování typické pro databázové systémy 41/41 - OS - synchronizace
2010/2011 ZS. Operační systém. prostředky, zablokování
Principy počítačů a operačních systémů Operační systém prostředky, zablokování Základní pojmy Prostředek cokoliv, k čemu je potřeba hlídat přístup např.hwzařízení, záznamy v DB Odnímatelné vs. neodnímatelné
Procesy a vlákna - synchronizace
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna - synchronizace České vysoké učení technické Fakulta elektrotechnická 2010 Studijní materiály a informace o předmětu http://measure.feld.cvut.cz/vyuka/predmety/bakalarske/navody
Principy operačních systémů. Lekce 6: Synchronizace procesů
Principy operačních systémů Lekce 6: Synchronizace procesů Kritická sekce Při multitaskingu (multithreadingu) různé procesy často pracují nad společnou datovou strukturou (např. zápis a čtení do/z fronty)
Principy operačních systémů. Lekce 7: Obrana proti deadlocku
Principy operačních systémů Lekce 7: Obrana proti deadlocku Deadlock Deadlock = uváznutí, zablokování Vznik problému: proces drží určité prostředky, požaduje přidělení dalších prostředků, tyto nedostane
Semafory Zobecněním operací WAKEUP a SLEEP přidáním celočíselného čítače vzniknou semafory a jejich atomické operace DOWN a UP.
Semafory Zobecněním operací WAKEUP a SLEEP přidáním celočíselného čítače vzniknou semafory a jejich atomické operace DOWN a UP. Dvě sémantiky vzhledem k hodnotám čítače: 1. čítač >= 0 Operace DOWN zkontroluje
2010/2011 ZS. Operační systém. procesy a vlákna. interakce a synchronizace
Principy počítačů a operačních systémů Operační systém procesy a vlákna plánování interakce a synchronizace Základní pojmy proces vykonávaný program vlákno (thread) oddělení místa vykonávání instrukcí
Paralelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 17 Monitor Semafor vedle aktivní (čekací smyčka, busy-wait) i pasivní implementace
Operační systémy Tomáš Hudec. 6 Komunikace procesů (IPC) Obsah: 6.1 Klasické problémy souběhu. 6.1.1 Obědvající filosofové
Operační systémy Tomáš Hudec 6 Komunikace procesů (IPC) Obsah: 6.1 Klasické problémy souběhu, 6.1.1 Obědvající filosofové, 6.1.2 Producenti a konzumenti, 6.1.3 Problém spících holičů, 6.1.4 Problém pisatelů
Operační systémy. Přednáška 5: Komunikace mezi procesy
Operační systémy Přednáška 5: Komunikace mezi procesy 1 Semafory Datový typ semafor obsahuje čítač a frontu čekajících procesů. Nabízí tři základní operace: Init(): Čítač se nastaví na zadané číslo (většinou
ZOS 9. cvičení, ukázky kódu. Pavel Bžoch
ZOS 9. cvičení, ukázky kódu Pavel Bžoch Obsah Komunikace mezi procesy Atomické operace TSL a CAS Zámky Semafory Semafory vypsání věty Monitor Bariéra pomocí monitoru Implementace semaforu pomocí monitoru
Operační systémy. Přednáška 4: Komunikace mezi procesy
Operační systémy Přednáška 4: Komunikace mezi procesy 1 Časově závislé chyby Dva nebo několik procesů používá (čte/zapisuje) společné sdílené prostředky (např. sdílená paměť, sdílení proměnné, sdílené
Procesy a vlákna IPC Komunikace mezi procesy (IPC = Inter-Process Communication)
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna IPC Komunikace mezi procesy (IPC = Inter-Process Communication) České vysoké učení technické Fakulta elektrotechnická 2010 Studijní materiály a informace
Paralelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 16 Semafory Await synchronizace používající await běží na železe = využívají
Řada programovacích jazyků nabízí prostředky pro řešení meziprocesové komunikace jako je synchronizace a řízení přístupu do kritické sekce.
Operační systémy Tomáš Hudec 7 Prostředky programovacích jazyků pro IPC Obsah: 7.1 Monitor, 7.1.1 Použití monitoru pro řízení přístupu do kritické sekce, 7.1.2 Použití monitoru pro synchronizaci, 7.1.3
Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21
Stručný obsah 1. Hardware, procesory a vlákna... 19 2. Programování s ohledemna výkon... 45 3. Identifikování příležitostí pro paralelizmus... 93 4. Synchronizace a sdílení dat... 123 5. Vlákna v rozhraní
Spuštění instalace. nastavení boot z cd v BIOSu vložení CD s instal. médiem spuštění PC. nastavení parametrů instalace (F2 čěština)
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 www.rvp.cz, ISSN: 1802-4785. Provozuje Národní ústav pro vzdělávání,
PB153 Operační systémy a jejich rozhraní
PB153 Operační systémy a jejich rozhraní Uváznutí 1 Problém uváznutí Existuje množina blokovaných procesů, každý proces vlastní nějaký prostředek (zdroj) a čeká na zdroj držený jiným procesem z této množiny
Služba ve Windows. Služba (service) je program
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 www.rvp.cz, ISSN: 1802-4785. Provozuje Národní ústav pro vzdělávání, školské
Synchronizace procesů
Synchronizace procesů Tomáš Vojnar vojnar@fit.vutbr.cz Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 BRNO 11. dubna 2011 Operační systémy Synchronizace procesů Současný
Synchronizace procesů
Synchronizace procesů Tomáš Vojnar vojnar@fit.vutbr.cz Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 BRNO 3. dubna 2018 Operační systémy Synchronizace procesů Současný
Cvičení 9 - Monitory. monitor m; var proměnné... procedure p; begin... end; begin inicializace; end;
Cvičení 9 - Monitory na rozdíl od semaforů je monitor jazyková konstrukce monitor = Pascalský blok podobný proceduře nebo fci uvnitř monitoru jsou definovány proměnné, procedury a fce proměnné monitoru
Správa procesoru. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška III. 7. listopad, / 23
Operační systémy Správa procesoru Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/YOS: Přednáška III. 7. listopad, 2014 1 / 23 Procesy (1/2) neformálně: proces = běžící
Správa procesoru. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 11. březen, 2011
Operační systémy Správa procesoru Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 11. březen, 2011 Petr Krajča (UP) KMI/XOSY: Přednáška III. 11. březen, 2011 1 / 18 Procesy (1/2) neformálně:
Synchronizace paralelních procesů
SU Media: Student Středník ČWUT AVC SH Akropolis ikariéra Synchronizace paralelních procesů z ČWUT Obsah 1 Časově závislé chyby, kritické sekce, vzájemné vyloučení 2 Metody vzájemného vyloučení
Paralelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 11 Literatura Ben-Ari M.: Principles of concurrent and distributed programming.
Synchronizace Mgr. Josef Horálek
Synchronizace Mgr. Josef Horálek Synchronizace procesu = Kooperující proces je proces, který může ovlivnit nebo být ovlivněn jiným procesem právě spuštěným v systému = Spolupracující procesy mohou sdílet:
Management procesu I Mgr. Josef Horálek
Management procesu I Mgr. Josef Horálek Procesy = Starší počítače umožňovaly spouštět pouze jeden program. Tento program plně využíval OS i všechny systémové zdroje. Současné počítače umožňují běh více
Zablokování (Deadlock) Mgr. Josef Horálek
Zablokování (Deadlock) Mgr. Josef Horálek Deadlock = V multiprogramovém prostředí si mohou různé prostředky konkurovat v získaní konečného počtu zdrojů = může se tedy stát, že čekající proces svůj stav
Přidělování zdrojů (prostředků)
Přidělování zdrojů (prostředků) Proces potřebuje zdroje (prostředky) hardware (I/O zařízení, paměť) software (data, programy) Klasifikace zdrojů (z hlediska multitaskingového režimu) Násobně použitelné
Téma 36. Petr Husa
Přesné zadání: Téma 36 Petr Husa husap1@fel.cvut.cz Sdílení prostředků, časově závislé chyby, kritické sekce procesu. Synchronizační nástroje, uváznutí - původ, detekce, prevence. Komponenty JOS pro podporu
Přednáška 3. Synchronizace procesů/vláken. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012
Přednáška 3 Synchronizace procesů/vláken. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným
Vlákna a přístup ke sdílené paměti. B4B36PDV Paralelní a distribuované výpočty
Vlákna a přístup ke sdílené paměti B4B36PDV Paralelní a distribuované výpočty Minulé cvičení: Paralelizace nám může pomoct... 1 Minulé cvičení: Paralelizace nám může pomoct... B4B36PDV: Ale ne všechny
Vzájemné vyloučení procesů
PDV 10 2017/2018 Vzájemné vyloučení procesů Michal Jakob michal.jakob@fel.cvut.cz Centrum umělé inteligence, katedra počítačů, FEL ČVUT Příklad Bankovní server v cloudu. Dva zákaznici současně vloží 10
Přednáška 4. Klasické synchronizační úlohy. Implementace procesů, vláken.
Přednáška 4 Klasické synchronizační úlohy. Implementace procesů, vláken. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika
Spojová implementace lineárních datových struktur
Spojová implementace lineárních datových struktur doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB
Architektura a koncepce OS OS a HW (archos_hw) Architektura a koncepce OS Jádro OS (archos_kernel) Architektura a koncepce OS Typy OS (archos_typy)
Architektura a koncepce OS OS a HW (archos_hw) Aby fungoval OS s preemptivním multitaskingem, musí HW obsahovat: 1. (+2) přerušovací systém (interrupt system) 2. (+2) časovač Při používání DMA: 1. (+1)
PARA Filozofové, kuřáci a holič
PARA Filozofové, kuřáci a holič Lenka Carr Motyčková 22. duben 2014 PDS Semafory 1 1. Večeřící filozofové (Dijkstra 1968) Problém: N (typicky 5) flozofů sedí u kulatého stolu, přemýšlí nebo jedí pomocí
04. Mutexy, monitory. ZOS 2006, L. Pešička
04. Mutexy, monitory ZOS 2006, L. Pešička Administrativa změna termínů zápočtových testů 7.11.2006 (út), EP130, 18:30 12.12.2006 (út), EP130, 18:30 Semafory Ošetření kritické sekce ukázka více nezávislých
Paralelní programování
Paralelní programování přednáška 3 Michal Krupka 1. března 2011 Michal Krupka (KI UP) Paralelní programování 1. března 2011 1 / 14 Ještě k atomickým proměnným Další neatomické proměnné Mohou to být proměnné,
TÉMATICKÝ OKRUH TZD, DIS a TIS
TÉMATICKÝ OKRUH TZD, DIS a TIS Číslo otázky : 15. Otázka : Paralelní procesy v databázích. Transakce, zamykání, uváznutí. Dvoufázový protokol, časová razítka. Obsah : 1 Úvod 2 Paralelní procesy v databázích
OS Deadlock a prevence
OS Deadlock a prevence Tomáš Hudec Tomas.Hudec@upce.cz http://asuei01.upceucebny.cz/usr/hudec/vyuka/os/ Prostředky poskytované OS OS poskytuje procesům systémové prostředky (zdroje, resources) HW zařízení,
Paralelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 14 Atomické akce dále nedělitelná = neproložitelná jiným procesem izolovaná =
Konzistentnost. Přednášky z distribuovaných systémů
Konzistentnost Přednášky z distribuovaných systémů Pro a proti replikaci 1. Zvýšení spolehlivosti. 2. Zvýšení výkonnosti. 3. Nutnost zachování škálovatelnosti systému co do počtu komponent i geografické
Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna
Principy operačních systémů Lekce 5: Multiprogramming a multitasking, vlákna Multiprogramování předchůdce multitaskingu Vzájemné volání: Implementován procesem (nikoliv OS) Procesu je přidělen procesor,
03. Synchronizace procesů. ZOS 2006, L. Pešička
03. Synchronizace procesů ZOS 2006, L. Pešička Administrativa 1. zápočtový test 7.11.2006 (út), EP130, 18:30 praktická cvičení před testem (slide upraven na aktuální termín) Plánování procesů Krátkodobé
C++ 0x aka C++11. Základním kamenem je třída std::thread
C++ 0x aka C++11 Jako jiné jazyky, např. Free/Object Pascal, se C++ ve standardu ++0x dočkal podpory vláken Výhodou je, že standardní knihovna je platformě nezávislá na úrovni zdrojového kódu Základním
Lineární datové struktury
Lineární datové struktury doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Lineární datové
Procesy a vlákna (Processes and Threads)
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna (Processes and Threads) Správa procesů a vláken České vysoké učení technické Fakulta elektrotechnická 2012 Použitá literatura [1] Stallings, W.: Operating
Paralelní programování
Paralelní programování přednášky Jan Outrata únor květen 2011 Jan Outrata (KI UP) Paralelní programování únor květen 2011 1 / 15 Simulátor konkurence abstrakce = libovolné proložení atom. akcí sekvenčních
Základní datové struktury
Základní datové struktury Martin Trnečka Katedra informatiky, Přírodovědecká fakulta Univerzita Palackého v Olomouci 4. listopadu 2013 Martin Trnečka (UPOL) Algoritmická matematika 1 4. listopadu 2013
Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz. Paralelní programování
Tomáš Foltýnek foltynek@pef.mendelu.cz Paralelní programování strana 2 Opakování Co je to síť? Co je to tok? Co je to velikost toku? Co je to řez? Co je to velikost řezu? Jaký je vztah mezi velikostí toku
Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 3 PARALELNÍ PROCESY V DATABÁZÍCH
Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 3 PARALELNÍ PROCESY V DATABÁZÍCH 1 teorie dosud -aplikace jednouživatelské praxe - databáze současně přístupná více uživatelům, paralelní běh aplikací příklady
Fronta (Queue) Úvod do programování. Fronta implementace. Fronta implementace pomocí pole 1/4. Fronta implementace pomocí pole 3/4
Fronta (Queue) Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Fronta uplatňuje mechanismus přístupu FIFO first
Architektury paralelních počítačů II.
Architektury paralelních počítačů II. Sekvenční konzistence paměti Implementace synchronizačních událostí Ing. Miloš Bečvář s použitím slajdů Prof. Ing. Pavla Tvrdíka, CSc. Osnova přednášky Opakování definice
Jazykové konstrukce pro paralelní výpočty
Paralelismus se vyskytuje na: Jazykové konstrukce pro paralelní výpočty 1. Úrovni strojových instrukcí 2. Úrovni příkazů programovacího jazyka 3. Úrovni podprogramů 4. Úrovni programů Vývoj multiprocesorových
Pavel Procházka. 3. prosince 2014
Jazyk C# (seminář 11) Pavel Procházka KMI 3. prosince 2014 Motivace Dnes už se prakticky nedělají jednojádrové procesory pokud potřebujeme výkon, musíme zapojit všechna jádra Často potřebujeme dělat více
Grafické znázornění vláken a klasické problémy synchronizace
Grafické znázornění vláken a klasické problémy synchronizace Naďa Jašíková Vít Koumar Jindřich Samec 1 Grafické znázornění vláken a jejich komunikace v UML Unified Modelling Language (UML) se používá k
Konstruktory a destruktory
Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
PROGRAMOVÁNÍ ŘÍDÍCÍCH SYSTÉMŮ
VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ PROGRAMOVÁNÍ ŘÍDÍCÍCH SYSTÉMŮ Ing. Ivo Špička, Ph.D. Ostrava 2013 Ing. Ivo Špička, Ph.D. Vysoká škola báňská Technická univerzita Ostrava
Paralelní programování
Paralelní programování přednáška 5 Michal Krupka 15. března 2011 Michal Krupka (KI UP) Paralelní programování 15. března 2011 1 / 13 Ještě ke kritickým sekcím Použití v praxi obvykle pomocí zámků (locks)
Přidělování CPU Mgr. Josef Horálek
Přidělování CPU Mgr. Josef Horálek Přidělování CPU = Přidělování CPU je základ multiprogramového OS = pomocí přidělování CPU různým procesům OS zvyšuje výkon výpočetního systému; = Základní myšlenka multiprogramování
Petr Štěpán, K13133 KN-E-129 Téma 5. Synchronizace a deadlock
Operační systémy a sítě Petr Štěpán, K13133 KN-E-129 stepan@fel.cvut.cz Téma 5. Synchronizace a deadlock A4B33OSS 1 Problém synchronizace vláken Souběžný přístup ke sdíleným datům může způsobit jejich
Transakce a zamykání Jiří Tomeš
Transakce a zamykání Jiří Tomeš Administrace MS SQL Serveru (NDBI039) O čem to dnes bude Úvodní opakování základních pojmů Jištění transakcí Speciální konstrukce Typy transakcí Závěrečný souhrn, použité
Řízení IO přenosů DMA řadičem
Řízení IO přenosů DMA řadičem Doplňující text pro POT K. D. 2001 DMA řadič Při přímém řízení IO operací procesorem i při použití přerušovacího systému je rychlost přenosu dat mezi IO řadičem a pamětí limitována
ÚVOD DO OPERAČNÍCH SYSTÉMŮ
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna Plánování procesů (Process Scheduling) České vysoké učení technické Fakulta elektrotechnická 2010 Studijní materiály a informace o předmětu http://measure.feld.cvut.cz/vyuka/predmety/bakalarske/navody
Paralení programování pro vícejádrové stroje s použitím OpenMP. B4B36PDV Paralelní a distribuované výpočty
Paralení programování pro vícejádrové stroje s použitím OpenMP B4B36PDV Paralelní a distribuované výpočty Minulé cvičení: Vlákna a jejich synchronizace v C++ 11... 1 Minulé cvičení: Vlákna a jejich synchronizace
11. Tabu prohledávání
Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI
Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí
Výpočet v módu jádro v důsledku událostí - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení řízení se předá na proceduru pro ošetření odpovídající události část stavu přerušeného procesu
Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer dat - rozvrhovač - manažer transakcí
Transakce = programová jednotka, která: - zachovává konzistenci databáze - končí v konečném čase - se provede celá nebo vůbec Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer
08. Deadlock Přidělování paměti. ZOS 2006, L. Pešička
08. Deadlock Přidělování paměti ZOS 2006, L. Pešička Obsah Deadlock Jak předcházet, detekovat, reagovat Metody přidělování paměti Jak se vypořádat s uvíznutím 1. Problém uvíznutí je zcela ignorován 2.
Téma 4. Synchronizace a deadlock
A3B33OSD 2016/2017 Operační systémy a databáze Petr Štěpán, K13133, KN-E-129 stepan@fel.cvut.cz Michal Sojka, K13135, KN-G-203 sojkam1@fel.cvut.cz Téma 4. Synchronizace a deadlock A3B33OSD 2016/2017 Meziprocesní
Paralelní programování
Paralelní programování cvičení Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 13 Cvičení 1 Jazyk C POSIX Threads (UNIX) hlavičkový soubor pthread.h, knihovna
Možnosti programování se sdílenými proměnnými. Týden 6 Programování se sdílenými proměnnými (Shared Variables, SV) Procesy a vlákna.
Možnosti programování se sdílenými proměnnými Týden 6 Programování se sdílenými proměnnými (Shared Variables, SV). Sekvenční jazyk + paralelizující kompilátor = zatím málo efektivní (implicitní paralelismus).
Operační systémy - modelování a algoritmy paralelních výpočtů
Operační systémy - modelování a algoritmy paralelních výpočtů texty pro distanční studium Doc. Ing. Cyril Klimeš, CSc. Ostravská univerzita v Ostravě, Přírodovědecká fakulta Katedra informatiky a počítačů
jednoduchá heuristika asymetrické okolí stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy Pokročilé heuristiky
Pokročilé heuristiky jednoduchá heuristika asymetrické stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy pokročilá heuristika symetrické stavový prostor, který vyžaduje řízení 1 2 Paměť pouze
1 Nejkratší cesta grafem
Bakalářské zkoušky (příklady otázek) podzim 2014 1 Nejkratší cesta grafem 1. Uvažujte graf s kladným ohodnocením hran (délka). Definujte formálně problém hledání nejkratší cesty mezi dvěma uzly tohoto
Principy operačních systémů. Lekce 8: Ovladače periferií
Principy operačních systémů Lekce 8: Ovladače periferií Vstupní a výstupní zařízení I/O zařízení, V/V zařízení Systém vstupních a výstupních zařízení je subsystémem operačního systému, který zprostředkovává
Paralelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 11 Literatura Ben-Ari M.: Principles of concurrent and distributed programming.
VzorTest-1. Prohlídka náhledu
1 z 11 14.11.2017 11:30 Přijímací zkouška magisterského studia Moodle Test MSP Testy VzorTest-1 Prohlídka náhledu Jste přihlášeni jako Josef Kolář (Odhlásit se) Info Výsledky Náhled Upravit VzorTest-1
Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.
Trochu teorie Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací. Každá spuštěná aplikace má alespoň jeden proces
30. Vlákna, jejich atributy, metody, organizace a stavy. Možnosti synchronizace. (A7B36PVJ)
30. Vlákna, jejich atributy, metody, organizace a stavy. Možnosti synchronizace. (A7B36PVJ) Procesy a vlákna Proces Každá aplikace je vlastně běžící proces. Pokud je aplikace spuštěna vícekrát, vytvoří
TÉMATICKÝ OKRUH Počítače, sítě a operační systémy
TÉMATICKÝ OKRUH Počítače, sítě a operační systémy Číslo otázky : 1. Otázka : Procesy, meziprocesová komunikace a její synchronizace. Obsah : 1 Úvod 1.1 Stavy procesů 1.2 Tabulka procesů 1.3 Přepínání mezi
Cvičení č. 3. Sdílené prostředky a synchronizace Program Banka. 4 body
Cvičení č. 3 Sdílené prostředky a synchronizace Program Banka 4 body Datum: 12.3.2008 1 Obsah 1. Úvod...2 2. Pokyny pro odevzdání...2 3. Příprava...2 4. Úlohy...3 4.1. Požadavky na program...3 4.2. Požadavky
Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.
Základní principy konstrukce systémové sběrnice - shrnutí Shrnout základní principy konstrukce a fungování systémových sběrnic. 1 Co je to systémová sběrnice? Systémová sběrnice je prostředek sloužící
Programování v C++, 2. cvičení
Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule
Programování v C++ 2, 4. cvičení
Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva
ČÁST 1. Základy 32bitového programování ve Windows
Obsah Úvod 13 ČÁST 1 Základy 32bitového programování ve Windows Kapitola 1 Nástroje pro programování ve Windows 19 První program v Assembleru a jeho kompilace 19 Objektové soubory 23 Direktiva INVOKE 25
Distribuovaná synchronizace. Paralelní a distribuované systémy. 11. Přednáška Vzájemné vyloučení. Centralizovaný algoritmus - fronta procesů
Distribuovaná synchronizace Využití kritické sekce při vzájemném vyloučení v distribuovaném systému Paralelní a distribuované systémy 11. Přednáška Vzájemné vyloučení Logicky distribuovaný systém s vlákny
Paralelní a asynchronní programování. Zdeněk Jurka
Paralelní a asynchronní programování Zdeněk Jurka Obsah přednášky Paralelní vs. Asynchronní programování Thread ThreadPool TPL Async await Synchronizace PLINQ Paralelní vs. Asynchronní programování Paralelní
Disková pole (RAID) 1
Disková pole (RAID) 1 Architektury RAID Základní myšlenka: snaha o zpracování dat paralelně. Pozice diskové paměti v klasickém personálním počítači vyhovuje pro aplikace s jedním uživatelem. Řešení: data
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÝCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS DATOVÉ STRUKTURY
8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
Algoritmizace. 1. Úvod. Algoritmus
1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá
Téma 5 Synchronizace procesů a problém uváznutí
Téma 5 Synchronizace procesů a problém uváznutí Obsah 1. Problém soupeření, kritické sekce 2. Vzájemné vyloučení 3. Semafory 4. Klasické synchronizační úlohy 5. Problém uváznutí a časově závislých chyb
ZOS. Verze 2010-srpen-31, v3 L. Pešička
ZOS Verze 2010-srpen-31, v3 L. Pešička Základní znalosti vhodné k opakování Rozhodně prosím neberte jako jediný materiál na učení ke zkouškám / státnicím obsahuje jen vybrané části Jde zde o zopakování,
Téma 5 Synchronizace procesů a problém uváznutí Obsah
Téma 5 Synchronizace procesů a problém uváznutí Obsah 1. Problém soupeření, kritické sekce 2. Vzájemné vyloučení 3. Semafory 4. Klasické synchronizační úlohy 5. Problém uváznutí a časově závislých chyb
Paralelní a distribuované výpočty (B4B36PDV)
Paralelní a distribuované výpočty (B4B36PDV) Branislav Bošanský, Michal Jakob bosansky@fel.cvut.cz Artificial Intelligence Center Department of Computer Science Faculty of Electrical Engineering Czech
MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti
MS WINDOWS II Jádro Správa objektů Správa procesů Zabezpečení Správa paměti JÁDRO I ntoskrnl.exe napsán v C (příp. assembler) základní mechanismy poskytované executivám trap dispečink synchronizace přístupů
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE