Определите понятия семафора и двоичного семафора.
Ответ
Современным низкоуровневым решением проблемы взаимного исключения является использование семафоров Дейкстры (E.W.Dijkstra), 1965г. Семафор (semaphore) – это специальный тип переменных, которые могут принимать только неотрицательные значения, и над которыми определены только три следующие операции (

– переменная типа «семафор»):
1)

- операция инициализации семафора;
2) операция

- значение переменной

уменьшается на единицу, если это возможно; операция интерпретируется как операция опускания (закрытия) семафора;
3) операция

- значение переменной

увеличивается на единицу; операция интерпретируется как операция поднятия (открытия) семафора.
Если семафор закрыт (процессом 1, с помощью операции P(S)), то процесс 2, вызвавший операцию

, ждет, пока семафор откроется (процессом 1, с помощью операции V(S)). Выполнение операций

,

не может быть прервано. Если одной и той же критической секции достигли несколько процессов, то они образуют очередь к семафору.
Простейшим семафором является двоичный семафор, который может принимать лишь два состояния – 0 и 1. Иногда двоичный семафор называют мьютексом (mutex – сокращение от mutual exclusion).