Пожалуйста, уточните это мне: P (sem) - операция ожидания для определенного семафора.
Скажем, процесс A вызывает эту процедуру:
P(sem){
value[sem]--;
if (value[sem] < 0){
add Process A to sem list;
block();
}
}
Теперь, это атомарно?поскольку он блокирует процесс A и выполняет переключение контекста в вызове процедуры и знает, что элемент управления все еще находится в процессе A.