Monitory
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