Monitory

Z FAV wiki
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Založena nová stránka: Monitor je synchronizacni primitivum, ktere se pouziva pro rizeni pristupu ke sdilenym prostredkum. Jeho zvlastnosti je, ze jde o specialni konstrukci programovaciho jazyka...)
 
Řádka 1: Řádka 1:
−
Monitor je synchronizacni primitivum, ktere se pouziva pro rizeni pristupu ke sdilenym prostredkum. Jeho zvlastnosti
+
Monitor je synchronizační primitivum, které se používá pro řizeni přístupu ke sdíleným prostředkům. Jeho zvláštností
−
je, ze jde o specialni konstrukci programovaciho jazyka (musi ho tedy implementovat prekladac), typicky im-
+
je, že jde o speciální konstrukci programovaciho jazyka (musí ho tedy implementovat překladač), typicky im-
−
plementovanou pomoci jineho synchronizacniho primitiva. Vyhodou monitoru oproti jinym primitivum je jeho
+
plementovanou pomocí jineho synchronizačního primitiva. Výhodou monitoru oproti jiným primitivum je jeho
−
vysokourovnovost { snadneji se pouziva a je bezpecnejsi. Pri jeho pouziti je mene pravdepodobne, ze programator
+
vysokoúrovňovost - snadněji se používá a je bezpečnější. Při jeho použití je méně pravděpodobné, že programátor
−
udela chybu.
+
udělá 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
+
* Monitor je speciální typ modulu, ve kterém jsou sdružena data a procedury, které s nimi mohou manipulovat
−
· Procesy mohou volat procedury monitoru, ale nemohou přímo přistupovat k datům monitoru
+
* Monitory musí umět rozpoznat překladač a přeložit je do odpovídajícího kódu
−
· V monitoru může být v jednu chvíli aktivní pouze jeden proces; ostatní jsou při pokusu o vstup do monitoru pozastaveny.
+
* Procesy mohou volat procedury monitoru, ale nemohou přímo přistupovat k datům monitoru
−
· Monitory poskytují speciální typ proměnné nazývané podmínka
+
* V monitoru může být v jednu chvíli aktivní pouze jeden proces; ostatní jsou při pokusu o vstup do monitoru pozastaveny.
−
· Podmínky mohou být definovány a použity pouze uvnitř monitoru
+
* Monitory poskytují speciální typ proměnné nazývané podmínka
−
· Nad podmínkami jsou definovány dvě operace:
+
* Podmínky mohou být definovány a použity pouze uvnitř monitoru
−
- c.wait
+
* Nad podmínkami jsou definovány dvě operace:
−
volající bude pozastaven nad podmínkou c
+
  **c.wait - volající bude pozastaven nad podmínkou c. Pokud je některý proces připraven vstoupit do monitoru, bude mu to dovoleno
−
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
−
- 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
+

Verze z 14. 8. 2011, 21:00

Monitor je synchronizační primitivum, které se používá pro řizeni přístupu ke sdíleným prostředkům. Jeho zvláštností je, že jde o speciální konstrukci programovaciho jazyka (musí ho tedy implementovat překladač), typicky im- plementovanou pomocí jineho synchronizačního primitiva. Výhodou monitoru oproti jiným primitivum je jeho vysokoúrovňovost - snadněji se používá a je bezpečnější. Při jeho použití je méně pravděpodobné, že programátor udělá chybu.


 **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