Процесс, вызвавший функцию
void Wait (Semaphore_t *sem)
приостанавливается, если
счетчик семафора имеет значение 0. В противном случае значение
счетчика семафора уменьшается на единицу, а процесс продолжает
работу. Приостановленные процессы помещаются в очередь к семафору
и не исполняются, пока какой-нибудь процесс не увеличит счетчик
семафора. Это можно сделать с помощью функции
void Signal (Semaphore_t *sem)
Выполнение этой функции
приводит к тому, что первый процесс в очереди семафора sem
возобновляет работу. Если очередь семафора пуста, то значение
счетчика семафора увеличивается на единицу.