home   contents  previous      next        up

Семафоры в ОС PARIX

В ОС PARIX имеется набор функций для работы с семафорами. Функция
void InitSem (Semaphore_t *sem, int count)
записывает в дескриптор семафора sem начальные данные и присваивает счетчику семафора значение count.

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


home   contents  previous      next        up