Я никогда не понимал семафоров достаточно хорошо.Каждый раз, когда я рискну понять их, всплывает что-то, чего я не понимаю.
Вот мой вопрос на данный момент:
Я прочитал в «Концепции операционной системы», что: "* Семафор S - это целочисленная переменная, к которой, кроме инициализации, обращаются только через две стандартные атомарные операции: wait () и signal (). " *
Что здесь означает атомное?Означает ли это, что эта операция будет выполнена за один раз?
Но затем в книге дается один пример реализации wait ():
wait(S) {
while S <= 0
; // no-op
S--;
}
с циклом while в нем(который зависит от другого процесса), как это может выполняться за один раз (то есть без какого-либо другого процесса, выполняющего сигнал, который прервет цикл while)
Пожалуйста, объясните,