Semafory. Rozwiązanie problemu wzajemnego wykluczania.
• Przykład:
binary semaphore s
process p begin
tfhile true begin
strefa_lokalna
uait(s) //inicjalnie s = 1
stre f a_krytyczna
signal(s)
strefa_lokalna
end
end
• Po współbieżnym uruchomieniu wielu procesów semafor realizuje wzajemne wykluczanie: wyłącznie jeden wątek może wykonywać sekcję krytyczną
• W tym przypadku semafor jest bardzo silnym narzędziem ograniczającym dostęp do sekcji krytycznej dla co najwyżej jednego procesu/wątku
• Do rozwiązania problemu wzajemnego wykluczania, gdy w sekcji krytycznej może przebywać maksymalnie N procesów/wątków można wykorzystać semafor ogólny rozmiaru N (N jest wartością inicjalną takiego semafora).