信号量中的wait()是Atomic

时间:2015-10-12 12:43:52

标签: operating-system semaphore

我是OS的新手。这个问题可能听起来有些愚蠢,但请帮助我理解它背后的概念。 设S->信号量变量 现在让wait(S)实现为

wait(S){
  while S<=0 ;
  S--;

}

现在等待(S)是原子操作。原子意味着它不能被中断。 现在,如果我有一个单处理器,那么执行wait()的进程将永远运行,并且如果某些其他进程设置S = 0,则永远不会被抢占。 它是如何运作的?请解释。

0 个答案:

没有答案