Synchronizace. nejen provedení dvou operací ve stejný čas jakákoliv forma časové koordinace více procesů nebo událostí synchronizační pravidla / omezení.

Slides:



Advertisements
Podobné prezentace
Stavový prostor. • Existují úlohy, pro které není k dispozici univerzální algoritmus řešení • různé hry • problém batohu, problém obchodního cestujícího.
Advertisements

Mikroprocesory Intel Obr. 1.
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
10. Dynamické datové struktury
Aplikační a programové vybavení
SOFTWARE operační systémy
Paralelní programování
Paralelní programování
Paralelní programování
Úvod. Základní úrovně: hardwarová (procesory, jádra) programová (procesy, vlákna) algoritmická (uf... ) Motivace: zvýšení výkonu redundance jiné cíle,
Vývojové diagramy a základy algoritmizace
Řízení dopravy Model pro odhad stavu a optimalizaci Jitka Kratochvílová, Ivan Nagy.
13AMP 6. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Synchronizace procesů Synchronizace procesů Producent-Konzument Producent-Konzument.
Teoretická informatika Tomáš Foltýnek Paralelní programování.
Modely konzistentnosti Ladislav Kotal PDS 2008Ladislav Kotal2 Konzistentnost Konzistentní = soudržný, neporušený, pevný Konzistenční model = dohoda.
Michael Juřek Software Architect Microsoft s.r.o.
Operační systémy Přednášky pro výuku předmětu Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003.
Výrok „Počítač je pouze tak inteligentní jako jeho uživatel.“ (Radek Lochman, dnes)
Počítače a programování 1
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Správa procesů.
13AMP 3. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled I. Co je to kontext úlohy Co je to kontext úlohy Task switching (přepnutí úlohy)
Transakční zpracování v SQL P. Částek. Transakce Transakce = logická jednotka práce Podaří-li se všechny části transakce, potvrdíme je. COMMIT Jestliže.
Dokumentace informačního systému
STROMY Datová struktura sestávající z uzlů
Aplikační a programové vybavení
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
11. přednáška politika přidělování místa, trashing -algoritmy určení oběti -souběžnost procesů -kritická sekce (co je to, požadavky, možnosti.
UNIX Shell skripty Roman Danel VŠB TU Ostrava, Hornicko – geologická fakulta.
Zablokování (deadlock, smrtelné objetí, uváznutí)
1. ELEKTRICKÝ SIGNÁL VSTUPUJE DO uPROCESORU 2.VYMAŽE DATA KTERÁ ZŮSTALA V REGISTRECH VNITŘNÍ PAMĚTI 3. NASTAVÍ REGISTR CPU – ČÍTAČ INSTRUKCÍ NA F000 ADRESA.
Správa procesů.
A4B33OSS (J. Lažanský) verze: Podzim 2010 Meziprocesní komunikace a synchronizace procesů 1 Obsah Téma 5 – Meziprocesní komunikace a synchronizace procesů.
A4B33OSS (J. Lažanský) verze: Podzim 2013 Meziprocesní komunikace a synchronizace procesů 1 Obsah Téma 5 – Synchronizace procesů a problém uváznutí 1.Problém.
13AMP 4. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Problém sdílených zdrojů Problém sdílených zdrojů Co je to kritická sekce Co.
Distribuované algoritmy - přehled Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
A3B33OSD (J. Lažanský) verze: Jaro 2013 Synchronizace procesů a problém uváznutí 1 Obsah Téma 5 – Synchronizace procesů a problém uváznutí 1.Problém soupeření,
Základy operačních systémů Meziprocesová komunikace a synchronizace Jakub Yaghob.
Optimalizace versus simulace 8.přednáška. Obecně o optimalizaci  Maximalizovat nebo minimalizovat omezujících podmínkách.  Maximalizovat nebo minimalizovat.
Teorie ES a jejich aplikace Biskup Jiří, Fakulta stavební, ČVUT Praha, Květen 2004.
PB 169 Počítačové sítě a operační systémy1 Synchronizace procesů Uváznutí PB 169 Počítačové sítě a operační systémy.
IB111 Práce se soubory Správa paměti. Práce se soubory v Pythonu Soubor musíme „otevřít“ Poté s ním pracujeme –Čteme a/nebo zapisujeme Nakonec musíme.
Přehled projektu Laser Doppler System AVČR – Fyziologický ústav Jaroslav Šabacký.
Kontakty slajdy: ftp://ulita.ms.mff.cuni.cz/predn/POS.
1/35 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Synchronizace procesů 08.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Počítačová bezpečnost Cvičení 1: Zabezpečení startu PC © Milan Keršláger
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 4: Programovací jazyk C Bc. Radek Libovický.
Operační systémy LS 2014/ přednáška 20. dubna 2015.
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 2: Základní pojmy Bc. Radek Libovický.
ZŠ Brno, Řehořova 3 S počítačem snadno a rychle Informatika 7. ročník III
Vypracoval / Roman Málek
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: 
Soubor Soubor v informatice označuje pojmenovanou sadu dat uloženou na nějakém datovém médiu, se kterou lze pracovat nástroji operačního systému jako.
Operační systémy 9. Spolupráce mezi procesy
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Číslicová technika.
Centrální procesorová jednotka
1. ročník oboru Mechanik opravář motorových vozidel
Práce s procesy Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Autor:
Přednášky z distribuovaných systémů
příklad: hody hrací kostkou
Školní vědecký projekt
Přepínání procesů Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Správa procesů.
Algoritmizace a datové struktury (14ASD)
Monitor Object 1.
Výměna dobré praxe v rámci projektu „Domovník-preventista“
Transkript prezentace:

Synchronizace

nejen provedení dvou operací ve stejný čas jakákoliv forma časové koordinace více procesů nebo událostí synchronizační pravidla / omezení – dané požadovanou činností, dané aplikací, musí se vymyslet v běžném životě se synchronizujeme pomocí času v PC je většinou nepoužitelný

kvůli preemptivnímu multitaskingu je čas nespojitý musel by se měřit čas každé instrukce IO operace, takže je čas provedení instrukce v podstatě nezjistitelný stejně vzhledem k rychlosti provádění instrukcí jsou hodiny procesoru málo přesné rozlišení na mikrosekundy, ale záleží na taktovací frekvenci procesoru, která se může měnit dynamicky a i tak je to stejně málo stejně je to jedno

neznáme přesný čas instrukce / operace měření by bylo brutálně náročné musíme použít jiné synchronizační nástroje inkrementální počítaní času nefunguje hlavně kvůli přeplánování základní problémy: serializace vzájemné vyloučení (mutual exclusion) na tyto se dá všecko ostatní redukovat jedním kódem může procházet více vláken

zajištění posloupnosti událostí události se provedou sekvenčně, pokud je zaručeno pořadí jejich provedení události se provedou souběžně, pokud se mohou provést ve stejný čas nebo v různém pořadí souběžně se provádí něco o čem z kódu nedokážeme říct, který řádek se provede dřív nedeterministické procesy se mohou přeplánovat každé spuštění může dopadnout jinak experiment je k ničemu, je nutné prokázat správnost teoreticky

Mach musí obědvat dříve než Šebestová Execution Path Mach musí dát Šebestové vědět, že obědval MachŠebestová a1a1snídaněb1snídaně a2a2práceb2práce a3obědb3oběd a4večeřeb4večeře

a4 a b3 probíhá sekvenčně a5 a b4 a b5 probíhá souběžně MachŠebestová a1a1snídaněb1snídaně a2a2práceb2práce a3obědb3počkat na telefon od Macha a4a4zavolat Šebestovéb4oběd a5a5večeřeb5večeře

nutnost synchronizace není vždy zřejmá závislá na prostředí, kompilátoru, … jakákoliv práce se sdílenou proměnnou vyžaduje maximální opatrnost atomičnost – špatně viditelná MachŠebestová a1a1count++b1count++ MachŠebestová a1a1temp = countb1temp = count a2count = temp + 1b2count = temp + 1

většinou bude fungovat jaké situace mohou nastat? globální data mohou být sdílená musíme vždy předpokládat, že jsou MachŠebestová a1a1jméno = Machb1jméno = Šebestová a2print jméno--

Je jedno kdo obědvá dříve, ale nesmí obědvat současně Mutual exclusion MachŠebestová a1a1snídaněb1snídaně a2a2práceb2práce a3obědb3oběd a4večeřeb4večeře

MachŠebestová a1a1snídaněb1snídaně a2a2pracujb2pracuj a3Přišla T2?b3Přišla T1? a3a3Pošli t1čekej z2b3Pošli t2čekej z1 a4obědb4oběd a5a5Pošli z1b5zavolej z2 a6a6pracujb6pracuj

programová struktura, která se hodí pro synchronizaci strukturované, přenosné, univerzální alternativy: komplexnější struktury semafor = integer při vytvoření se nastaví počáteční hodnota při průchodu se sníží o 1 pokud je hodnota záporná pak se vlákno uspí ( will block) pokud se hodnota semaforu zvýší na 0, pak je některé ze spících vláken probuzeno (wake-up)

u standardního semaforu nevíme, které vlákno bude probuzeno může existovat „férový“ semafor, který probudí nejstarší vlákno zabraňuje stárnutí u pracovních vláken není moc žádoucí aktuální hodnotu semaforu nelze zjistit – stav semaforu je „neurčitý“ semafor je atomický vlákno buď projde nebo neprojde hodnota semaforu = počet propustek binární semafor = jedna propustka = mutex

průchod semaforem wait() = acquire() = decrement() signal() = release() = increment() existují různá rozšíření: fair semaphore tryacquire() semafory se kombinují do složitějších struktur experiment je k ničemu synchronizační vzory

testování není příliš účinné to, že něco funguje neznamená, že to funguje vždy lepší je dokázat, že to fungovat musí (nebo nemůže) ale pomáhá to Python Swampy python lib\swampy\Sync.py sync_code\test.py slovo Thread označuje začátek kódu ve vláknu před prvním Thread je společná část komentáře se považují za prováděný řádek

vytvoření semaforu: semafor = Semaphore(1) metody: semafor.wait(), semafor.signal() proměnné, print(), podmínky if něco: něco nebo s odsazením funkce num_threads()

semafor prácehotova(0) binární semafor řeší serializaci MachŠebestová a1a1pracujb1prácehotova.wait() a2prácehotova.signal()b2zobraz výsledek

ani jeden nesmí pokračovat pokud nedorazil ten druhý setkání = rendezvous MachŠebestová a1a1pracujb1pracuj a2zobraz výsledekb2zobraz výsledek

varianty? MachŠebestová a1pracujb1pracuj a2MachHotov.signal()b2ŠebestováHotova.signal() a3ŠebestováHotova.wait()b3MachHotov.wait() a4zobraz výsledekb4zobraz výsledek

uváznutí – deadlock varianty? MachŠebestová a1pracujb1pracuj a2ŠebestováHotova.wait()b2MachHotov.wait() a3MachHotov.signal()b3ŠebestováHotova.signal() a4zobraz výsledekb4zobraz výsledek