<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://www.512.cz/skins/common/feed.css?301"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
		<id>https://www.512.cz/index.php?feed=atom&amp;target=212.79.110.155&amp;title=Speci%C3%A1ln%C3%AD%3AP%C5%99%C3%ADsp%C4%9Bvky%2F212.79.110.155</id>
		<title>FAV wiki - Příspěvky uživatele [cs]</title>
		<link rel="self" type="application/atom+xml" href="https://www.512.cz/index.php?feed=atom&amp;target=212.79.110.155&amp;title=Speci%C3%A1ln%C3%AD%3AP%C5%99%C3%ADsp%C4%9Bvky%2F212.79.110.155"/>
		<link rel="alternate" type="text/html" href="https://www.512.cz/index.php?title=Speci%C3%A1ln%C3%AD:P%C5%99%C3%ADsp%C4%9Bvky/212.79.110.155"/>
		<updated>2026-10-22T19:05:13Z</updated>
		<subtitle>Z FAV wiki</subtitle>
		<generator>MediaWiki 1.17.0</generator>

	<entry>
		<id>https://www.512.cz/index.php?title=Monitory</id>
		<title>Monitory</title>
		<link rel="alternate" type="text/html" href="https://www.512.cz/index.php?title=Monitory"/>
				<updated>2014-06-04T09:15:22Z</updated>
		
		<summary type="html">&lt;p&gt;212.79.110.155: Zrušena verze 442 od uživatele 77.48.236.1 (diskuse)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Monitor je synchronizační primitivum, které se používá pro řizeni přístupu ke sdíleným prostředkům. Jeho zvláštností&lt;br /&gt;
je, že jde o speciální konstrukci programovacího jazyka (musí ho tedy implementovat překladač), typicky implementovanou pomocí jineho synchronizačního primitiva. Výhodou monitoru oproti jiným primitivum je jeho&lt;br /&gt;
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&lt;br /&gt;
udělá chybu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Monitor je speciální typ modulu, ve kterém jsou sdružena data a procedury, které s nimi mohou manipulovat&lt;br /&gt;
* Monitory musí umět rozpoznat překladač a přeložit je do odpovídajícího kódu&lt;br /&gt;
* Procesy mohou volat procedury monitoru, ale nemohou přímo přistupovat k datům monitoru&lt;br /&gt;
* V monitoru může být v jednu chvíli AKTIVNÍ pouze jeden proces; ostatní jsou při pokusu o vstup do monitoru pozastaveny.&lt;br /&gt;
* Monitory poskytují speciální typ proměnné nazývané podmínka&lt;br /&gt;
* Podmínky mohou být definovány a použity pouze uvnitř monitoru&lt;br /&gt;
* Nad podmínkami jsou definovány dvě operace:&lt;br /&gt;
** c.wait - volající bude pozastaven nad podmínkou c. Pokud je některý proces připraven vstoupit do monitoru, bude mu to dovoleno&lt;br /&gt;
** 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&lt;br /&gt;
&lt;br /&gt;
Pozor, pokud by signál pouze vzbudil proces, běžely by v monitoru dva.&lt;br /&gt;
Možná řešení:&lt;br /&gt;
* Hoare - proces volající c.signal se pozastaví a vzbudí se až poté co předchozí rektivovaný proces opustí monitor nebo se pozastaví&lt;br /&gt;
* Hansen - Signal smí být uveden pouze jako poslední příkaz v monitoru. Po volání signal musí proces opustit monitor&lt;br /&gt;
&lt;br /&gt;
V Javě jsou monitory implementovány pomocí klíčového slova synchronized. Zde je problém více vláken v monitoru vyřešen tak, že čekající může běžet až poté, co proces volající signál opustí monitor.&lt;br /&gt;
&lt;br /&gt;
{{fav-kiv-bzinf}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:fav-kiv-bzinf]]&lt;/div&gt;</summary>
		<author><name>212.79.110.155</name></author>	</entry>

	</feed>