Monitory

Z FAV wiki
Verze z 8. 8. 2011, 15:23; Tester (diskuse | příspěvky)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Přejít na: navigace, hledání

Monitor je synchronizacni primitivum, ktere se pouziva pro rizeni pristupu ke sdilenym prostredkum. Jeho zvlastnosti je, ze jde o specialni konstrukci programovaciho jazyka (musi ho tedy implementovat prekladac), typicky im- plementovanou pomoci jineho synchronizacniho primitiva. Vyhodou monitoru oproti jinym primitivum je jeho vysokourovnovost { snadneji se pouziva a je bezpecnejsi. Pri jeho pouziti je mene pravdepodobne, ze programator udela chybu.

· Monitor je speciální typ modulu, ve kterém jsou sdružena data a procedury, které s nimi mohou manipulovat · Monitory musí umět rozpoznat překladač a přeložit je do odpovídajícího kódu · Procesy mohou volat procedury monitoru, ale nemohou přímo přistupovat k datům monitoru · V monitoru může být v jednu chvíli aktivní pouze jeden proces; ostatní jsou při pokusu o vstup do monitoru pozastaveny. · Monitory poskytují speciální typ proměnné nazývané podmínka · Podmínky mohou být definovány a použity pouze uvnitř monitoru · Nad podmínkami jsou definovány dvě operace: - c.wait volající bude pozastaven nad podmínkou c pokud je některý proces připraven vstoupit do monitoru, bude mu to dovoleno - c.signal pokud existuje jeden nebo více procesů pozastavených nad podmínkou c, reaktivuje jeden z pozastavených procesů, tj. bude mu dovoleno pokračovat v běhu uvnitř monitoru pokud nad podmínkou nespí žádný proces, nedělá nic

Osobní nástroje
Jmenné prostory
Varianty
Akce
Navigace
Nástroje