Методы синхронизации процессов, действительно ли P (семафор) атомарный? - PullRequest
0 голосов
/ 02 марта 2012

Пожалуйста, уточните это мне: P (sem) - операция ожидания для определенного семафора.

Скажем, процесс A вызывает эту процедуру:

P(sem){
  value[sem]--;
  if (value[sem] < 0){
    add Process A to sem list;
    block();
  }
}

Теперь, это атомарно?поскольку он блокирует процесс A и выполняет переключение контекста в вызове процедуры и знает, что элемент управления все еще находится в процессе A.

...