Операционные системы. Курс лекций

       

Семафоры


Это объект с операциями SimWait() и SimSignal(). Его атрибутом обычно является целое число и очередь, а его операции определены следующим образом.

SimWait() – если значение целого числа, входящего в состав семафора больше 0, уменьшить его на единицу и позволить процессу продолжить работу, в противном случае приостановить процесс, пометить его, как блокированный у данного семафора.

SimSignal() – если ни один процесс не ждет у данного семафора, увеличить целое число на единицу, в противном случае освободить один процесс и продолжить его работу с инструкции, следующей за инструкцией «ждать».

При использовании семафорного механизма процесс, которому отказано в доступе к критической  ресурсу, находится в состоянии пассивного ожидания.



Содержание раздела