Monitor Object 1.

Slides:



Advertisements
Podobné prezentace
© 2000 VEMA počítače a projektování spol. s r. o..
Advertisements

Projektové řízení Modul č.1.
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
Operační systémy. OPERAČNÍ SYSTÉMY pomoc operátorovi, podpora vlastností reálného času, víceuživatelských a více úlohových systémů.
Komunikace v DS Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.
State. State – kontext a problém Kontext  chování objektu má záviset na jeho stavu, který se typicky mění za běhu Neflexibilní řešení  metody obsahují.
Páté cvičení Dědičnost Interface Abstarktní třídy a metody
Adresářová služba Active directory
M-Cloud.cz Groupwarové řešení pro malé a střední podniky.
13AMP 6. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Synchronizace procesů Synchronizace procesů Producent-Konzument Producent-Konzument.
Objektové programování
Rozšíření jednouživatelské verze IS na víceuživatelskou Prezentace Diplomové práce Autor : Libor Tomášek Spoluautoři : Pobucký M., Drábek L. Vedoucí :
Operační systémy.
Jedenácté cvičení Vlákna. Java cv112 Vlákna Operační systém Mutitasking – více úloh se v operačním programu vykonává „současně“ Java Multithreading -
Strategie řízení informačních a komunikačních služeb ve škole PROČ ?
Vybrané metody analýzy
Stipendijní informační portál - Informační Strategie.
Strategy. Strategy – „All-in-1“ na začátek class AStrategy { public: virtual void Algorithm()=0; protected: AStrategy(); }; class SpecificStrategy: public.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
Multithread programming Java vs. OpenMP Pavel Zavoral Martin Kugler.
Informatika pro ekonomy II přednáška 10
Modelování a simulace MAS_02
6. cvičení Polymorfismus
Možnosti modelování požadavků na informační systém
Techniky projektového řízení
Pattern Oriented Software Architecture
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)
Úvod do JavaScriptu JavaScript je p JavaScript je programovací jazyk, který se používá na webových stránkách. JavaScript je typu KLIENT - KLIENT To znamená,
Actor model Novotný Marek Svata Bohuslav Lhotan Petr.
Zablokování (deadlock, smrtelné objetí, uváznutí)
Návrh předmětu a jeho inovací Obchodní podnikání PhDr.Iveta Šimberová, Ph.D.
Multithread programming Java vs. OpenMP Pavel Zavoral Martin Kugler.
KIV/ZIS cvičení 4 Tomáš Potužák. Dotazy - úvod Umožňují pracovat s databází –Získávat specifické informace z tabulky, případně z více tabulek najednou.
Decorator. Rozšiřuje objekty o dodatečné chování  rozšiřuje konkrétní objekty, ne třídy  rozšiřuje objekt dynamicky, tj. za běhu Upřednostňuje kompozici.
Návrh podle kontraktu - klasická metodika a moderní nástroje Tomáš Pitner Masarykova univerzita v Brně Fakulta informatiky
Jan Syrovátka.  Nemožnost rychlého vývoje a nasazování nových protokolů a služeb  Model Internetu dovoluje pouze limitované zabezpečení  Mobilní stanice.
Optický kabel (fiber optic cable)
1/28 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Vlákna 06.
Základy operačních systémů Meziprocesová komunikace a synchronizace Jakub Yaghob.
Service layer. Service layer – úvod Problém  Vytvoření API aplikace  Odstínění bussiness logiky a transakčního chování od zbytku aplikace  Kam s aplikační.
Kreslítko Petr Diviš Zdeněk Papež. Úvod - připomenutí Desktopová („stand-alone“) aplikace Jednoduchý grafický editor  Tvorba a editace základních geometrických.
Strategy. Motivace Různé algoritmy pro stejnou akci Hromada kódu v mnoha podmínkách Důsledky  Komplexnost  Špatná čitelnost  Těžká správa kódu  Těžka.
Template Method. Motivační příklad – reálný svět Čaj 1) Uvař vodu 2) Dej do hrnku sáček čaje 3) Zalij hrnek 4) Přisyp cukr a vymačkej citrón Káva 1) Uvař.
6. Profesní kompetence jako pracovní způsobilost Dagmar Svobodová.
Terénní sociální práce s uživateli drog v sociálně vyloučených lokalitách JAKUB ČERNÝ ROMAN HLOUŠEK.
Fyzická vrstva (PL) Techniky sériové komunikace (syn/asyn, sym/asym ) Analogový okruh (serial line) Přenos v přeneseném pásmu (modem) Digitální okruh.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
SOLID principy v OOP návrhu
Office 365 a SharePoint Online na Filozofické fakultě UK
Pattern Oriented Software Architecture
Strategie regionu, obce
Assessment centrum.
Návrhový vzor Flyweight
PB169 – Operační systémy a sítě
Configuration Patterns
Operační systémy 9. Spolupráce mezi procesy
Half-Sync/Half-Async
C# Vícevláknové aplikace
Informatika pro ekonomy přednáška 8
Strategy „Definujte rodinu algoritmů, zapouzdřuje je aby byly vzájemně zaměnitelné. Strategie umožňuje, aby se algoritmus nebyl závislý na klientech, kteří.
Ing. Milan Houška KOSA PEF ČZU v Praze
Bridge.
Přednášky z distribuovaných systémů
Assessment centrum.
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: 
Přednášky z Distribuovaných systémů
Základní škola a mateřská škola ANGEL V Praze 12
Decorator.
Scoped Locking, Strategized Locking
GRASP Patterns.
Transkript prezentace:

Monitor Object 1

Monitor Object – návrhový vzor Kontext více vláken volá současně metody na stejném objektu objekt sám žádné vlákno nemá (je pasivní) volání metody probíhá ve klientově vlákně „klasické zámky“ Účel serializovat souběžné volání metod na objektu tím vynutit, aby s objektem pracovala vždy nejvýš jedna metoda v jediném vlákně Příklad komunikační brána ze vzoru Active Object pro malé objekty může být overhead Active Objectu příliš velký složitá plánovací strategie nemusí být potřeba

Monitor Object – problémy Čtyři problémy současné volání metod objektu může poškodit jeho vnitřní stav race conditions Interface objektu definuje jeho synchronizaci s interním stavem objektu se jakkoliv jinak nemanipuluje chceme transparentní synchronizaci aby klient nemusel používat low-level primitiva má-li metoda blokovat, musí se dobrovolně vzdát řízení ochrana proti deadlocku a zbytečnému čekání před uspáním a probuzením musí být objekt v korektním stavu

Monitor Object – struktura Monitor Lock: zamykací mechanismus (např. mutex, semafor) Monitor Condition: prostředek pro spolupráci více vláken

Monitor Object – dynamické chování Klient nijak nepracuje se zámkem Atomický release a suspend OS

Monitor Object – varianty Timed Synchronized Method Invocations časový limit na čekání Strategized Locking flexibilní konfigurace zámku a podmínek Multiple Roles objekt implementuje více rolí pro různé skupiny klientů klient vidí z objektu jen specifické rozhraní lepší rozšiřitelnost -> stačí přidat nové rozhraní

Monitor Object – příklady Dijkstra Monitor, Hoare Monitor Monitory na objektech v Javě Příklad ze života – fast food restaurace Java Hoare Monitor

Monitor Object – shrnutí Výhody jednoduché řízení konkurence jednodušší plánování, kde se mají metody vykonávat kooperativní plánování použití podmínek Nevýhody omezená škálovatelnost složitá změna synchronizačních mechanizmů a politik těsná vazba mezi funkčností a logikou synchronizace a plánování nelze znovu použít implementaci s jinými synchronizačními mechanizmy problémy s vnořováním – Nested Monitor Lockout

Active Object vs. Monitor Object Monitor Object a Active Object dělají podobně věci, ale trochu se liší Active Object složitější metody běží v jiném vlákně než klient sofistikovanější, ale dražší vykonávání a příjem nových požadavků kvůli větší režii se hodí spíš na větší objekty asynchronní získání výsledků lépe rozšiřitelný Monitor Object jednodušší metody běží ve vlákně klienta menší režie, hodí se i na menší objekty těsnější vazba mezi funkcionalitou a synchronizační logikou