Semafory, jejich použití a implementace

Z FAV wiki
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (kategorizace)
 
Řádka 29: Řádka 29:
  
 
{{fav-kiv-bzinf}}
 
{{fav-kiv-bzinf}}
 +
 +
 +
[[Kategorie:fav-kiv-bzinf]]

Aktuální verze z 20. 2. 2014, 06:47

Semafor = proměnná, obsahuje nezáporné celé číslo

Semaforu, lze přiřadit hodnotu pouze při deklaraci

Nad semafory pouze operace P(s) a V(s):

Operace P i V jsou nedělitelné (atomické) akce, tj. jakmile započne akce nad semaforem, nikdo k němu nemůže přistoupit. Když se několik procesů pokouší přistoupit současně ke stejnému semaforu, operace se provedou sekvenčně v libovolném pořadí.

Vzájemné vyloučení pomocí semaforů:

Implementace


S každým semaforem s je sdruženo:

Proces, který nemůže dokončit operaci P bude zablokován a uložen do seznamu blokovaných procesů. Pokud při operaci V není seznam prázdný, vybere se ze seznamu jeden proces a odblokuje se.

Pozor, mutex není binární semafor. Mutex může na rozdíl od semaforu odemknout pouze vlákno, které ho zamklo.


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