A jaki masz problem i na czym on polega? Na jakim etapie się zatrzymałeś?
Wejście do metody monitora można w dużym uproszczeniu zapisać tak:
1. oczekuj na zwolnienie semafora - powiedzmy że oczekuj dopóki S > 0
2. ustaw S = 1 // w tym momencie każdy inny proces będzie musiał czekać
Wyjście z metody jest w sumie jeszcze prostsze:
1. ustaw S = 0 // jakiś inny proces będzie mógł wejść do metody
W każdym razie zakładając, że procesy czekają aktywnie tzn. ciągle odpytują o stan semafora. No i że dostęp do semafora jest thread safe tzn. semafor jest zabezpieczony np. przed zmianą wartości przez dwa procesy jednocześnie, np. dzięki operacjom atomowym.