Вопрос

В моем учебнике Операционные системы:Внутреннее устройство и принципы проектирования (9-е издание) Уильям Столлингс в главе 5 объясняет, как работают семафоры:

Основной принцип заключается в следующем:Два или более процессов могут сотрудничать с помощью простых сигналов, так что процесс может быть вынужден останавливаться в указанном месте, пока не получит определенный сигнал.Любое сложное требование координации может быть удовлетворено соответствующей структурой сигналов.Для сигнализации используются специальные переменные, называемые семафорами.Передавать сигнал через семафор s , процесс выполняет примитивsemSignal (s) .Чтобы получить сигнал через семафоры S, процесс выполняет примитив semWait (s) ;Если соответствующий сигнал еще не был передан, процесс приостановлен до тех пор, пока передача не произойдет.

Я не могу найти в главе 5 описание того, когда семафор выдает semSignal вместо semWait (которые также иногда называют сигналом и ожиданием).Может ли кто-нибудь описать условия, при которых будет выдаваться semSignal по сравнению с semWait?

Это было полезно?

Решение

Семафор их не выдает.Семафор — это объект, который может использоваться процессами для координации между собой.Таким образом, процесс вызовет semSignal или semWait для общего семафора.Мы не можем описать условия, при которых он будет это делать в целом, потому что каждый процесс сам решает, как он хочет использовать семафоры.Семафоры — это примитив, который можно использовать разными способами.Вы сможете найти в Интернете или в своем учебнике множество примеров использования семафоров для координации;это даст вам несколько примеров конкретных процессов и того, когда эти конкретные процессы будут вызывать эти операции над семафором.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с cs.stackexchange
scroll top