Paralelní programování

Slides:



Advertisements
Podobné prezentace
Paralelní programování
Advertisements

Paralelní programování
Analýza informačního systému
13AMP 6. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Synchronizace procesů Synchronizace procesů Producent-Konzument Producent-Konzument.
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)
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.
PA152Notes 101 CS 245: Database System Principles Notes 10: More TP Hector Garcia-Molina Pavel Rychlý.
Zablokování (deadlock, smrtelné objetí, uváznutí)
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.
Analýza informačního systému. Podrobně zdokumentovaný cílový stav Paramentry spojené s provozem systému – Cena – Přínosy – Náklady a úspory – …
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.
1/35 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Synchronizace procesů 08.
Operační systémy LS 2014/ přednáška 20. dubna 2015.
Synchronizace. nejen provedení dvou operací ve stejný čas jakákoliv forma časové koordinace více procesů nebo událostí synchronizační pravidla / omezení.
Percentá Percentá každý deň a na každom kroku.
NÁZEV: VY_32_INOVACE_05_05_M6_Hanak TÉMA: Dělitelnost
Delavnica za konfiguriranje dostopovnih točk RAČUNALNIŠKA OMREŽJA
Jan Coufal, Julie Šmejkalová, Jiří Tobíšek
Obvod a obsah kruhu Prezentaci Mgr. Jan Kašpara (ZŠ Hejnice) upravila a doplnila Mgr. Eva Kaucká e.
Určitý integrál. Příklad.
Shodné zobrazení, osová souměrnost, středová souměrnost
Opakování na 4. písemnou práci
rtinzartos Napište slova, která obsahují uvedená písmena.
Data Science aneb BigData v praxi
Emise a absorpce světla
NÁZEV ŠKOLY: Základní škola Hostouň, okres Domažlice,
Elektrikcé pole.
Střední odborná škola a Střední odborné učiliště, Hradec Králové, Vocelova 1338, příspěvková organizace Registrační číslo projektu: CZ.1.07/1.5.00/
Perspektivy budoucnosti lidstva
6. PŘEDNÁŠKA Diagnostické (screeningové) testy v epidemiologii
Základy elektrotechniky
NÁZEV: VY_32_INOVACE_08_12_M9_Hanak TÉMA: Jehlan OBSAH: Objem
Změny skupenství Ing. Jan Havel.
Seminář JČMF Matematika a fyzika ve škole
4.2 Deformace pevného kontinua 4.3 Hydrostatika
A ZÁROVEŇ HNED DOKONALÉ
Tělesa –Pravidelný šestiboký hranol
8.1.1 Lineární kombinace aritmetických vektorů
Číselné soustavy a kódy
Čas a souřadnice Lekce 3 Miroslav Jagelka.
Jasnosti hvězd Lekce 10 Miroslav Jagelka.
Název prezentace (DUMu): Jednoduché úročení – řešené příklady
DYNAMICKÉ VLASTOSTI ZEMIN A HORNIN
E-projekt: Jak změřit výšku budovy GJŠ
Parametry vedení a stejnosměrná vedení
Martina Litschmannová
Martina Litschmannová, Adéla Vrtková
ROZDĚLENÍ ÚHLŮ PODLE VELIKOSTI
Rovinný úhel a jeho orientace
T - testy Párový t - test Existuje podezření, že u daného typu auta se přední pneumatiky nesjíždějí stejně. H0: střední hodnota sjetí vpravo (m1) = střední.
Číselné soustavy a kódy
Práce s nepájivým (kontaktním) polem
Střední odborná škola a Střední odborné učiliště, Hradec Králové, Vocelova 1338, příspěvková organizace Registrační číslo projektu: CZ.1.07/1.5.00/
Máme data – a co dál? (1. část)
Autoimunity, imunodeficity
Radioaktivita a radonové riziko
Kapacita.
Vyučující: RNDr. Danka Haruštiaková, Ph.D.
Phillipsovy křivky, protekcionizmus, integrace
Úvod do studia literatury a literární vědy
Rešeršní činnost Mgr. Petr Šmejkal
Aplikace numerických modelů při odstraňování následků těžby uranu
Termodynamika Jana Mattová.
Ing. Alena Šafrová Drášilová BPH_MAN1
Fyzika II pro biochemii
Elektrárny 1 Přednáška č
Chemické karcinogeny na pracovišti – je dostatečná a jejich prevence
Transkript prezentace:

Paralelní programování Synchronizace – čtenáři – písaři

Čtenáři – písaři více konzumentů více producentů konzument neodebírá data z paměti čtení se může provádět souběžně zápis vylučuje čtení a naopak ale od každého může být více instancí kategorické vyloučení

Písař roomEmpty.wait() writedata() roomEmpty.signal()

Čtenář mutex.wait() readers = readers + 1 if readers == 1 roomempty.wait() mutex.signal() readdata() readers = readers – 1 if readers == 0 roomEmpty.signal()

Optimalizace poslední odejde a zhasne písaři stárnou lock() unlock() vzor lightswitch písaři stárnou pokud stále přichází čtenáři, je potřeba zajistit, aby se dostalo i na písaře v algoritmu je implicitně zavedená priorita velmi zrádné – není vidět na první pohled

Písař turnstile.wait() roomEmpty.wait() writedata() turnstile.signal() roomEmpty.signal()

Čtenář turnstile.wait() turnstile.signal() mutex.wait() readers = readers + 1 if readers == 1 roomempty.wait() mutex.signal() readdata() readers = readers – 1 if readers == 0 roomEmpty.signal()

Optimalizace na písaře se rozhodně dostane nový požadavek ale nevíme přesně kdy zavedli jsme do algoritmu jinou implicitní prioritu plánovač zde nemůže pomoci nový požadavek pokud čeká písař, už nesmí vstoupit žádný další čtenář implicitní prioritu lze dále zvýšit

Čtenář noReaders.wait() mutex1.wait() readers = readers + 1 if readers == 1: noWriters.wait() mutex1.signal() noReaders.signal() readdata() readers = readers - 1 if readers == 0: noWriters.signal()

Písař mutex2.wait() writers = writers + 1 if writers == 1: noReaders.wait() mutex2.signal() noWriters.wait() writedata() noWriters.signal() writers = writers - 1 if writers == 0: noReaders.signal()

Dining philosophers omezené zdroje (různého) druhu pro pokračování jsou potřeba alespoň 2 zdroje je nutné zabránit stárnutí a uváznutí musí pokračovat více jak jedno vlákno – je nutné zachovat efektivitu zdroj může být obsazen pouze jedním procesem

Filozof forks = array[0..cnt] of sem(1) function get_forks(i) fork(i).wait() fork(i+1 % cnt).wait() function put_forks(i) fork(i).signal() fork(i+1 % cnt).signal()

Filozof forks = array[0..cnt] of sem(1) function get_forks(i) room.wait() fork(i).wait() fork(i+1 % cnt).wait() function put_forks(i) room.signal() fork(i).signal() fork(i+1 % cnt).signal()

Varianty nesymetrické řešení testování zda je možné pokračovat jedno z vláken je levé testování zda je možné pokračovat více typů zdrojů

Producent – konzument 2 producent je jeden a nic nedělá pokud je buffer prázdný, konzument požádá o naplnění producent naplní buffer na maximum konzumenti začnou konzumovat kuchař a žrouti synchronizace výstupu

Producent while (true) bufferEmpty.wait() fillbuffer(size) cnt == size bufferFull.signal()

Konzument while (true) mutex.wait() if (cnt == 0) bufferEmpty.signal() bufferFull.wait() cnt =- 1 d = getData() mutex.signal() processData(d)

Shrnutí celá řada modifikací např. delete – update – insert – select kategorické vyloučení je náchylné ke stárnutí vlákno čekající na více semaforů je náchylné k uváznutí je nutné stanovit si pravidla je potřeba snažit se o maximální efektivitu stárnutí není jen problém plánovače