Семафоры и отключение прерываний - Morozov-5F/operational-system-docs GitHub Wiki
Для работы с семафором, ОС отключает прерывания. Затем производится чтение значения семафора. Если оно уменьшается и достигает нуля, поток, запрашивающий операцию, переводится в группу заблокированных процессов для этого семафора. Если значение увеличивается, то из списка заблокированных процессов (если тот не пуст) выбирается один и переводится в запущенное состояние. Когда все эти операции завершены, прерывания включаются обратно.
Источники:
- Ответы к заданиям, Э. Таненбаум, 3-е изд.