03. Synchronizace procesů. ZOS 2006, L. Pešička
|
|
- Vladimíra Musilová
- před 6 lety
- Počet zobrazení:
Transkript
1 03. Synchronizace procesů ZOS 2006, L. Pešička
2 Administrativa 1. zápočtový test (út), EP130, 18:30 praktická cvičení před testem (slide upraven na aktuální termín)
3 Plánování procesů Krátkodobé CPU scheduling kterému z připravených procesů bude přidělen procesor; vždy ve víceúlohovém Střednědobé swap out odsun procesu z vnitřní paměti na disk Dlouhodobé job scheduling výběr, která úloha bude spuštěna dávkové zpracování (dostatek zdrojů spusť proces) Liší se frekvence spouštění
4 Plánování procesů Stupeň multiprogramování Počet procesů v paměti Ovlivňuje long term scheduler Snižuje middle term scheduler
5 Plánování Nepreemptivní Proces skončí Běžící -> Blokovaný Čekání na I/O operaci Semafor Čekání na ukončení potomka Preemptivní Běžící -> Připravený Uplynulo časové kvantum
6 Vlákna v User Space
7 Vlákna v jádře
8 Hybridní implementace
9 Modely - vlákna one-to-one Každé vlákno separátní proces v jádře Plánovač jádra je plánuje jako běžné procesy many-to-one User level plánovač vláken Z pohledu jádra pouze 1 proces many-to-many Komerční unixy (Solaris, Digital Unix, IRIX)
10 Linux Systémové volání clone() Zobecněná verze fork() One-to-one model Dovoluje novému procesu sdílet s rodičem Paměťový prostor File descriptors Signal handlers Specifické pro Linux, není přenositelné (portable)
11 Pthreads Historicky každý výrobce svoje řešení UNIX IEEE POSIX c standard (1995) Implementace POSIX threads Pthreads gcc lpthread ahoj.c Příklad - eryx
12 Vlákna - Solaris Uživatelská vlákna, vlákna jádra Lehké procesy (LWP) Každý proces min. 1 LWP Uživatelská vlákna multiplexována mezi LWP procesy Pouze vlákno napojené na některý LWP může pracovat Ostatní blokována nebo čekají na uvolnění LWP Každý LWP proces jedno vlákno jádra Další vlákna jádra bez LWP např. obsluha disku Vlákna jádra multiplexována mezi procesory
13 Vlákna Solaris
14 Vlákna - Java Vlákno instance třídy java.lang.thread Odvodit potomka, překrýt metodu run() Vlastní kód vlákna Spuštění vlákna volání metody start() třídy Thread Třída implementující rozhraní Runnable class Něco implements Runnable { public void run() { } }
15 Synchronizace procesů Časový souběh Kritická sekce Algoritmy pro přístup do kritické sekce Semafory
16 Časový souběh Procesy sdílejí společnou paměť čtení a zápis Může nastat časový souběh (race condition) Dva procesy zvětšují asynchronně společnou proměnnou X
17 Příklad dvou procesů cobegin... x := x + 1; x := x + 1;... coend
18 Příkaz na nízkoúrovňové inst. x := x + 1; Načtení hodnoty x do registru (LD R, x) Zvýšení hodnoty x (INC R) Zápis nové hodnoty do paměti (LD x, R) Pokud oba procesy provedou příkazy sekvenčně, bud mít x správně x+2
19 Chybné pořadí vykonání Přepnutí v nevhodném okamžiku.. Pseudopar. P1: LD R, x // x je 0, R je 0 P2: LD R, x // x je 0, R je 0 INC R // x je 0, R je 1 LD x, R // x je 1, R je 1 P1: // x je 1, R je 0 rozpor INC R // x je 1, R je 1 LD x, R // x je 1, R je 1 Výsledek chyba, neprovedlo se každé zvětšení
20 Chybné vykonání 2 CPU Chyba i při paralelním běhu
21 Př. bankovní transakce Dva procesy přístup do databáze Účet := účet proces Účet := účet proces Správný výsledek? Možné výsledky?
22 Časový souběh kdy nastane Přidávání prvku do seznamu Přístup do souboru 2 procesy chtějí vytvořit soubor a zapsat do něj 1. proces zjistí, že soubor není... přeplánování proces zjistí, že soubor není, vytvoří a zapíše 1. proces pokračuje, vytvoří a zapíše znehodnotí činnost druhého procesu
23 Výskyt souběhu časový souběh se projevuje nedeterministicky většinu času běží programy bez problémů hledání je obtížné
24 Řešení časového souběhu pokud čtení a modifikace atomicky atomicky = jedna nedělitelná operace souběh nenastane hw většinou není praktické zařídit sw řešení v 1 okamžiku dovolíme číst a zapisovat společná data pouze 1mu procesu => ostatním procesům zabránit
25 Kritická sekce sekvenční procesy komunikace přes společnou datovou oblast kritická sekce (critical section, region) místo v programu, kde je prováděn přístup ke společným datům úloha jak implementovat, aby byl v kritické sekci v daný okamžik pouze 1 proces
26 Společná datová oblast hlavní paměť soubor pokud 1 proces pracuje s jinou hodnotou, než jakou očekává jiný proces zamykání částí souboru řeší časový souběh každá kritická sekce se vztahuje ke konkrétním datům, ke kterým se v ní přistupuje
27 Struktura procesů cobegin P1: while true do // nekonečná smyčka begin nevinná_činnost; // pouze s vlastními daty kritická_sekce // přístup do sdílených dat end P2:... // totéž co P1 coend
28 Kritická sekce Proces, který chce do kritické sekce musí počkat, až z ní jiný proces vystoupí
29 Řešení časového souběhu - pravidla Vzájemné vyloučení - žádné dva procesy nesmějí být současně uvnitř své kritické sekce Proces běžící mimo kritickou sekci nesmí blokovat jiné procesy (např. jim bránit ve vstupu do kritické sekce) Žádný proces nesmí na vstup do své kritické sekce čekat nekonečně dlouho (jiný vstupuje opakovaně, neumí se dohodnout v konečném čase, kdo vstoupí první)
30 Možnosti řešení Zákaz přerušení Aktivní čekání Zablokování procesu
31 Zákaz přerušení přeplánování procesů pouze jako výsledek přerušení v systémech se sdílením času zákaz přerušení k přepínání nedochází zakaž přerušení; kritická sekce; povol přerušení;
32 Zákaz přerušení II. nejjednodušší řešení na uniprocesoru není dovoleno v uživatelském režimu (jinak pokud uživatel zakáže a nepovolí...) používáno často uvnitř jádra OS ale není vhodné pro uživatelské procesy
33 Aktivní čekání - předpoklady zápis a čtení ze společné datové oblasti jsou nedělitelné operace současný přístup více procesů ke stejné oblasti povede k sekvenčním odkazům v neznámém pořadí platí pro data <= délce slova kritické sekce nemohou mít přiřazeny prioritu relativní rychlost procesů je neznámá proces se může pozastavit mimo kritickou sekci
34 Algoritmus 1 procesy přistupují střídavě program striktni_stridani; var turn: integer; begin turn := 1; cobegin P1: while true do begin while turn = 2 do; KS1; turn := 2 end // čekací smyčka // kritická sekce // a může druhý
35 Algoritmus 1 pokračování P2: while true do begin while turn = 1 do; KS2; end coend end turn:= 1 // čekací smyčka // kritická sekce // a může první
36 Algoritmus 1 Problém porušuje pravidlo 2 Pokud je jeden proces podstatně rychlejší, nemůže vstoupit do kritické sekce 2x za sebou
37 Aktivní čekání Aktivní čekání Průběžné testování proměnné ve smyčce, dokud nenabude očekávanou hodnotu Většinou se snažíme vyhnout plýtvá časem CPU Používá se, pokud předpokládáme krátké čekání spin lock
38 Algoritmus - Peterson První úplné řešení navrhl Dekker, ale je poměrně složité Jednodušší a elegantnější algoritmus navrhl Peterson (1981) viz dále řešení pro 2 procesy lze i zobecnit
39 Peterson enter_cs() program petersonovo_resenı; var turn: integer; interested: array [0..1] of boolean; // na začátku {false, false} procedure enter_cs(process: integer); var other: integer; begin other:=1-process; interested[process]:=true; // ten druhý proces // oznámí zájem o vstup // nastaví příznak turn:=process; while turn=process and interested[other]=true do ; end;
40 Peterson leave_cs() procedure leave_cs(process: integer); begin interested[process]:=false; end; // oznámí odchod z KS
41 Peterson begin interested[0]:=false; // inicializace interested[1]:=false; cobegin while true do {cyklus - vlákno 1} begin enter_cs(0); KS1; leave_cs(0); end {while} {vlákno 2 analogické} coend end.
42 Peterson - vysvětlení na začátku není v KS žádný proces první proces volá enter_cs(0) interested[0] := true; turn := 0; nebude čekat ve smyčce, interested[1] je false nyní proces 2 volá enter_cs(1) interested[1]:= true; turn := 1; čeká ve smyčce, dokud interested[0] nebude false (leave_cs) pokud oba volají enter_cs téměř současně... oba nastaví intersted na true oba nastaví turn na své číslo ALE provede se sekvenčně, 0 OR 1 např. druhý proces bude jako druhý, tedy turn bude 1 oba se dostanou do while, první proces projde, druhý čeká
43 Spin lock s instrukcí TSL hw podpora většina počítačů instrukci, která otestuje hodnotu a nastaví paměťové místo v jedné nedělitelné operaci operace Test and Set Lock TSL, TS: TSL R, lock R je registr CPU lock buňka paměti, 0 false nebo 1 true; boolean; provádí: LD R, lock LD lock, 1
44 TSL Provádí nedělitelně (atomicky) žádný proces nemůže k lock přistoupit do skončení TSL Multiprocesor zamkne paměťovou sběrnici po dobu provádění instrukce
45 TSL - použití Proměnná typu zámek na počátku 0 Proces, který chce vstoupit do KS test Pokud 0, nastaví na 1 a vstoupí do KS Pokud 1, čeká Pokud by TSL nebyla atomická Jeden proces přečte, vidí 0.. Přeplánování.. Druhý proces přečte, vidí 0, nastaví 1, vstoupí KS První proces naplánován, zapíše 1 a je také v KS
46 Implementace zámku Spin_lock: TSL R, lock ;; atomicky R=lock, lock=1 CMP R, 0 ;; byla v lock 0? JNE spin_lock ;; pokud ne cykluj dál RET ;; návrat, vstup do KS Spin_unlock: LD lock, 0 ;; ulož hodnotu 0 do lock RET
47 Implementace zámku pozn. Cyklus v spin_lock dokud lock je 1 Když někdo vyvolá spin_unlock, přečte 0 a může vstoupit do KS Pokud na vstup do KS čeká více procesů Hodnotu 0 přečte jenom jeden z nich (první kdo vykoná TSL)
48 Implementace jádro Linuxu spin_lock: TSL R, lock CMP R, 0 ;; byla v lock 0? JE cont ;; pokud byla, skočíme Loop:CMP lock, 0 ;; je lock 0? JNE loop ;; pokud ne, skočíme JMP spin_lock ;; pokud ano, skočíme Cont: RET ;; návrat, vstup do KS
49 Náhrada TSL Uniprocesor Nedělitelnost zakázáním přerušení (DI/EI, CLI/STI) Multiprocesor Primitivní operace s uzamčením sběrnice Př. I8086: MOV AL, 1 ; do AL 1 LOCK XCHG AL, X ; zamkne sběrnici pro XCHG ;zamění AL a X
50 TSL jak v BACI atomic function TSL (var x: boolean) : boolean; begin TSL := x; x := true; end;
51 Implementace spin-locku type lock = boolean; procedure spin_lock (var m: lock); begin while TSL(m) do ; {čeká dokud je m true} end;
52 Implementace spin-locku procedure spin_unlock (var m: lock); begin m := false; end; Pozn. V literatuře TSL někdy se nastavuje true, někdy false
53 Problém řešení s aktivním čekáním Peterson, spin-lock Ztracený čas CPU Jeden proces v KS, další může ve smyčce přistupovat ke společným proměnným krade paměťové cykly aktivnímu procesu Problém inverze priorit Pouze zde připustíme, že procesy mají prioritu Dva procesy, jeden s vysokou H a druhý s nízkou L prioritou, H se spustí jakmile připraven
54 Problémy akt. čekání L je v kritické sekci H se stane připravený (např. má vstup) H začne aktivní čekání L ale nebude už nikdy naplánován, nemá šanci dokončit KS H bude aktivně čekat do nekonečna Problém inverze priorit
55 Řešení hledala se primitiva, která proces zablokují, místo aby čekal aktivně
56 Semafory Dijkstra (1965) navrh primitivum, které zjednodušuje komunikaci a synchronizaci procesů semafory Semafor proměnná, obsahuje nezáporné celé číslo Semaforu lze přiřadit hodnotu pouze při deklaraci Nad semafory pouze operace P(s) a V(s)
57 Operace P Operace P(S): Pokud S > 0, sníží S o 1 Jinak pozastaví proces, který chtěl provést operaci P
58 Operace V Operace V(S): Pokud je nad semaforem S zablokovaný jeden nebo více procesů, vzbudí jeden z procesů; proces pro vzbuzení je vybrán náhodně Jinak zvýší S o 1
59 Poznámky Operace P a V jsou nedělitelné (atomické) akce Jakmile začne operace nad semaforem nikdo k němu nemůže přistoupit dokud operace neskončí nebo se nezablokuje Několik procesů současně ke stejnému semaforu Operace se provede sekvenčně v libovolném pořadí
60 Poznámky - terminologie V literatuře P(s) někdy wait(s) nebo down(s) V(s) nazýváno signal(s) nebo up(s) Původní označení z holandštiny P proberen otestovat V verhogen zvětšit Pomůcka např. abecední pořadí operací
61 Vzájemné vyloučení pomocí semaforů Vytvořit semafor s hodnotou 1 Před vstupem do KS P(s) Po vystoupení z KS V(s) Je-li libovolný proces v KS Potom S je 0, jinak S je 1
62 Vzájemné vyloučení var s: semaphore = 1; cobegin while true do begin... P(s); KS1; V(s);... end {totéž dělá druhý proces} coend
63 Použití semaforů Vzájemné vyloučení Mutexy, binární semafory.. 0 a 1 Kooperace procesů Problém omezených zdrojů Obecné semafory
64 Vzájemné vyloučení - KS Procesy soupeří o zdroj Ke zdroji může přistupovat víc než 1 proces v daném čase Každý proces může existovat bez ostatních Interakce POUZE pro zajištění serializace přístupu ke zdroji
65 Kooperace procesů Procesy se navzájem potřebují, potřeba vzájemné výměny informací Nejjednodušší případ pouze synchronizační signály Obvykle i další informace např. zasíláním zpráv
66 Problém producent-konzument Problém ohraničené vyrovnávací paměti (bounded buffer problem, Dijkstra 1968) Dva procesy společnou paměť (buffer) pevné velikosti N položek Jeden proces producent generuje nové položky a ukládá do vyrov. paměti Paralelně konzument data vyjímáaspotřebovává
67 Producent - konzument Př. Hlavní program tiskne x tiskový server, blok 1 stránka Př. Obslužný prog. čte data ze zařízení x hlavní program je zpracovává
68 Různé rychlosti procesů Procesy různé rychlosti zabezpečit, aby nedošlo k přetečení / podtečení Konzument musí být schopen čekat na producenta, nejsou-li data Producent čekat na konzumenta, je-li buffer plný
69 Prod-konz. pomocí semaforů Pro synchronizaci obou procesů Pro vzájemné vyloučení nad KS Proces se zablokuje P, jiný ho vzbudí V Semafory: e počet prázdných položek v bufferu dostupných producentovi (empty) f počet plných položek ještě nespotřebovaných konz. (full)
70 Třetí semafor Semafor m pro vzájemné vyloučení Přidávání a vybírání ze společné paměti může být obecně kritickou sekcí
71 P&K - implementace Var e: semaphore = N; // prázdných f: semaphore = 0; // plných m: semaphore = 1; // mutex
72 P&K implementace II. cobegin whiletruedo { producent} begin produkuj záznam; P(e); // je volná položka? P(m); vlož do bufferu; V(m); V(f); // zvětší obsazených end {while}
73 P&K implementace III. while true do { konzument } begin P(f); // je plná nějaká položka? P(m); vyber z bufferu; V(m); V(e); // zvětši počet prázdných zpracuj záznam; end {while} coend.
74 P&K poznámky Vyrovnávací paměť se často implementuje jako pole buffer [0..N-1]
75 P&K poznámky Oba procesy vlastní index do pole buffer Např. operace přidej do bufferu: buffer[ip]:=polozka; ip:=(ip+1) mod N; Pokud je buffer jako pole, vzájemné vyloučení pro přístup dvou procesů nebude potřebné, každý přistupuje pouze k těm, ke kterým má přístup dovolen operací V(s)
76 Literatura obrázek Solaris LWP procesy z knížky W.Stalling: Operating systems Internals and design Principles
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)
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
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é
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:
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é
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
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í,
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í
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
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
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
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,
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í
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
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
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
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í
Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek
Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek = Velmi malé jádro = implementuje jen vybrané základní mechanismy: = virtuální paměť; = plánování vláken; = obsluha výjimek; = zasílání
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
Strojový kód. Instrukce počítače
Strojový kód Strojový kód (Machine code) je program vyjádřený v počítači jako posloupnost instrukcí procesoru (posloupnost bajtů, resp. bitů). Z hlediska uživatele je strojový kód nesrozumitelný, z hlediska
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)
Principy počítačů a operačních systémů
Principy počítačů a operačních systémů Operační systémy Synchronizace procesů, zablokování Zimní semestr 2011/2012 Přístup ke sdíleným datům Terminologie: souběžné vs. paralelní zpracování Paralelní provádění
Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012
Přednáška Vstup/Výstup. 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 z Evropského
Ú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
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
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é
Ř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
Principy operačních systémů. Lekce 4: Správa procesů
Principy operačních systémů Lekce 4: Správa procesů Základní pojmy Program = zápis algoritmu v programovacím jazyce Je statický (neměnný) Proces = instance programu běžícího v počítači Je tvořen nejen
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í
Přerušovací systém s prioritním řetězem
Přerušovací systém s prioritním řetězem Doplňující text pro přednášky z POT Úvod Přerušovací systém mikropočítače může být koncipován několika způsoby. Jednou z možností je přerušovací systém s prioritním
ZOS OPAKOVÁNÍ. L. Pešička
ZOS OPAKOVÁNÍ L. Pešička ZÁKLADNÍ PRAVIDLO Důležité je znát nejen fakta, ale porozumět jim a zasadit je do kontextu celého OS Př. algoritmus Second Chance využívá bitu Referenced tak, že (fakta) a kdy
Vlákna Co je to vlákno?
Vlákna Co je to vlákno? Hierarchie z pohledu operačního systému: Proces o největší výpočetní entita plánovače o vlastní prostředky, paměť a další zdroje o v závislosti na OS možnost preemptivního multitaskingu
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
Ukázka zkouškové písemka OSY
Ukázka zkouškové písemka OSY Jméno a příjmení:.......................................... Odpovězte na otázky zaškrtnutím příslušného políčka. Otázky označené znakem mohou mít více než jednu správnou odpověď.
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
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í
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
Operační systémy. Přednáška 2: Procesy a vlákna
Operační systémy Přednáška 2: Procesy a vlákna 1 Procesy Všechen běžící software v systému je organizován jako množina sekvenčně běžících procesů. (Sekvenční) proces Abstrakce běžícího programu. Sekvence
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á =
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
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í,
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ů
OS Plánování procesů
OS Plánování procesů Tomáš Hudec Tomas.Hudec@upce.cz http://asuei01.upceucebny.cz/usr/hudec/vyuka/os/ Plánování scheduling scheduler plánovač rozhoduje, který proces (vlákno) má CPU řídí se plánovacím
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ě:
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ří
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
setup() { I = 0; } loop() { I = I + 1; }
PŘERUŠENÍ Procesor pracuje tak, že načítá z paměti jednotlivé instrukce a ty následně zpracovává. Instrukce se zpracovávají v pořadí v jakém jsou uloženy v paměti. Vezměme jednoduchý program, který v nekonečném
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
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).
Ovladače pro Windows. Ovladače Windows A4M38KRP. Str. 1
Ovladače Windows A4M38KRP Str. 1 Struktura OS Windows Str. 2 Typy ovladačů Str. 3 Typy ovladačů Virtual Device Driver User mode ovladač Virtualizace HW pro DOS aplikace Legacy Driver Pro zařízení nepodporující
Vláknové programování část I
Vláknové programování část I Lukáš Hejmánek, Petr Holub {xhejtman,hopet}@ics.muni.cz Laboratoř pokročilých síťových technologií PV192 2015 04 07 1/27 Vláknové programování v C/C++ 1. Procesy, vlákna, přepínání
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.
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
Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu
Procesy, vlákna Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu Implementace vláken one-to-one o implementace na úrovni jádra o každé vlákno je pro
VISUAL BASIC. Práce se soubory
VISUAL BASIC Práce se soubory Práce se soubory 1/2 2 Vstupní data pro programy bývají uloženy do souborů Vstupy pro výpočet, nastavení vzhledu aplikace Výsledky práce programu je potřeba uchovat uložit
Přidělování paměti II Mgr. Josef Horálek
Přidělování paměti II Mgr. Josef Horálek Techniky přidělování paměti = Přidělování jediné souvislé oblasti paměti = Přidělování paměti po sekcích = Dynamické přemisťování sekcí = Stránkování = Stránkování
3. Počítačové systémy
3. Počítačové systémy 3.1. Spolupráce s počítačem a řešení úloh 1. přímý přístup uživatele - neekonomické. Interakce při odlaďování programů (spusť., zastav.,krok, diagnostika) 2. dávkové zpracování (batch
Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 Brno
Operační systémy IOS 2009/2010 Tomáš Vojnar Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 Brno ÚÓ Ò Ö ØºÚÙØ ÖºÞ Úvod do UNIXu p.1/11 Unix úvod Úvod do UNIXu p.2/11
Procesy a vlákna Mgr. Josef Horálek
Procesy a vlákna Mgr. Josef Horálek Procesy a vlákna = Základním úkolem jádra je = Správa běžících procesů a vláken: = vytváření = plánování = nastavování = ukončování Proces, vlákno, úloha = Proces běžící
09. Memory management. ZOS 2006, L.Pešička
09. Memory management ZOS 2006, L.Pešička Správa paměti paměťová pyramida absolutní adresa relativní adresa počet bytů od absolutní adresy fyzický prostor adres fyzicky k dispozici výpočetnímu systému
Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.
Odpovědi jsem hledala v prezentacích a na http://www.nuc.elf.stuba.sk/lit/ldp/index.htm Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je
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
PB002 Základy informačních technologií
Operační systémy 25. září 2012 Struktura přednašky 1 Číselné soustavy 2 Reprezentace čísel 3 Operační systémy historie 4 OS - základní složky 5 Procesy Číselné soustavy 1 Dle základu: dvojková, osmičková,
Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7
Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí
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í
Operační systémy 2: Zápočtové úkoly
Operační systémy 2: Zápočtové úkoly 18. listopad 2010 1 Paralelní Mergesort Implementujte paralelní verzi algoritmu Merge sort, který bude řadit celá čísla uložená v textovém souboru. Program bude mít
Ří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
Téma 3. Procesy a vlákna
Operační systémy a sítě Petr Štěpán, K13133 KN-E-129 stepan@fel.cvut.cz Téma 3. Procesy a vlákna Pojem Výpočetní proces Výpočetní proces (job, task) spuštěný program Proces je identifikovatelný jednoznačné
Vlákna. První jednoduchý program s vlákny:
Vlákna Současné operační systémy jsou víceúlohové. Z uživatelského pohledu se zdá, že běží několik úloh zároveň. Je tedy možné napsat i jeden program tak, aby v něm běželo vedle sebe několik relativně
Operační systémy. Přednáška 3: Plánování procesů a vláken
Operační systémy Přednáška 3: Plánování procesů a vláken 1 Plánovací algoritmy Určují, který z čekajících procesů (vláken) bude pokračovat. Typy plánování dlouhodobé (long-term scheduling) určuje, které
Struktura programu v době běhu
Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů
Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem
Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel
Stavy procesů. Požadavky na OS při práci s procesy
Téma 3 Obsah 1. Výpočetní procesy a jejich stavy 2. Stavový diagram procesů 3. Plánovače a přepínání kontextu 4. Typy plánování 5. Vznik a zánik procesu 6. Způsoby kooperace procesů 7. Proces a vlákna
Procesy a vlákna. A3B33OSD (J. Lažanský) verze: Jaro 2014
Téma 3 Obsah 1. Výpočetní procesy a jejich stavy 2. Stavový diagram procesů 3. Plánovače a přepínání kontextu 4. Typy plánování 5. Vznik a zánik procesu 6. Způsoby kooperace procesů 7. Proces a vlákna
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ů
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
07. Plánování procesů Deadlock. ZOS 2006, L. Pešička
07. Plánování procesů Deadlock ZOS 2006, L. Pešička Pozvánka na přednášku Xen na ZČU architektura migrace virtuálního stroje reálná konfigurace na ZČU praktická ukázka konfigurace a instalace virtuálního
SUPERPOČÍTAČE DANIEL LANGR ČVUT FIT / VZLÚ
SUPERPOČÍTAČE DANIEL LANGR ČVUT FIT / VZLÚ TITAN / HOPPER / NOTEBOOK TITAN HOPPER NOTEBOOK Počet CPU jader 299 008 153 216 2 Operační paměť [GB] 598 016 217 000 8 Počet GPU (CUDA) jader 50 233 344 0 8
Struktura pamětí a procesů v DB Oracle. Radek Strnad
Struktura pamětí a procesů v DB Oracle Radek Strnad radek.strnad@gmail.com 1 Základní rozdělení paměti Software codes area Chráněná část spustitelného kódu samotné DB. System global area (SGA) Sdílená
Přerušení POT POT. Přerušovací systém. Přerušovací systém. skok do obslužného programu. vykonávaný program. asynchronní událost. obslužný.
1 Přerušení Při výskytu určité události procesor přeruší vykonávání hlavního programu a začne vykonávat obslužnou proceduru pro danou událost. Po dokončení obslužné procedury pokračuje výpočet hlavního
Principy operačních systémů. Lekce 1: Úvod
Principy operačních systémů Lekce 1: Úvod Sylabus Lekce 1: Úvod 2 Literatura Lekce 1: Úvod 3 Operační systém Základní programové vybavení počítače, které se zavádí do počítače při jeho startu a zůstává
MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění
MS WINDOWS I řada operačních systémů firmy Microsoft *1985 -? Historie Práce ve Windows XP Architektura Instalace Spouštění HISTORIE I MS-DOS 1981, první OS firmy Microsoft, pro IBM PC 16b, textový, jednouživatelský,
Princip funkce počítače
Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování
Operační systémy. Přednáška 1: Úvod
Operační systémy Přednáška 1: Úvod 1 Organizace předmětu Přednášky každé úterý 18:00-19:30 v K1 Přednášející Jan Trdlička email: trdlicka@fel.cvut.z kancelář: K324 Cvičení pondělí, úterý, středa Informace
Von Neumannovo schéma
Multitasking Von Neumannovo schéma RAM 3 ADD SUB ZA input 20 28 010 100 registr dat 2 registr instrukcí op. code adr 7 LOAD 28 mikroprogramy 30 32 LOAD 28 ADD 20 registr adres 1 4 6 R W 30 čítač instrukcí
Stavy procesů. Požadavky na OS při práci s procesy
Téma 3 Obsah 1. Výpočetní procesy a jejich stavy 2. Stavový diagram procesů 3. Plánovače a přepínání kontextu 4. Typy plánování 5. Vznik a zánik procesu 6. Způsoby kooperace procesů 7. Proces a vlákna
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
VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy
VÝUKOVÝ MATERIÁL Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Anotace Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková
Principy operačních systémů
Principy operačních systémů Struktura programového vybavení Uživatelské programy Jádro operačního systému Interpret příkazů Hardware BIOS Služby OS Služební programy Operační systém Operační systém je
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
Vícevláknové programování na CPU: POSIX vlákna a OpenMP I. Šimeček
Vícevláknové programování na CPU: POSIX vlákna a OpenMP I. Šimeček xsimecek@fit.cvut.cz Katedra počítačových systémů FIT České vysoké učení technické v Praze Ivan Šimeček, 2011 MI-PRC, LS2010/11, Predn.2
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á
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í
Algoritmizace a programování
Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu
Vícevláknové aplikace
Vícevláknové aplikace Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 7 B0B36PJV Programování v JAVA Jan Faigl, Jiří Vokřínek, 2017 B0B36PJV Přednáška
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
Implementace dávkových operací
Implementace dávkových operací Petr Steckovič 12. 5. 2011 Hradec Králové 1 Dávkové zpracování dat Procesy běžící na pozadí Spouštěné Časem Stavem (např. dochází místo) Ručně Obvykle se jedná o podpůrné
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ů
OPERAČNÍ SYSTÉMY VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ PŘIDĚLOVÁNÍ PROCESORU. doc. Dr. Ing. Oldřich Kodym.
VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ OPERAČNÍ SYSTÉMY PŘIDĚLOVÁNÍ PROCESORU doc. Dr. Ing. Oldřich Kodym Ostrava 2013 doc. Dr. Ing. Oldřich Kodym Vysoká škola báňská Technická