【发布时间】:2011-06-13 09:32:08
【问题描述】:
我对信号量的理解还不够透彻。每次我冒险去理解它们,就会弹出一些我不理解的东西。
这是我此刻的问题:
我在“操作系统概念”中读到:"*信号量 S 是一个整数变量,除了初始化之外,它只能通过两个标准原子操作访问:wait() 和 signal() ."*
原子在这里是什么意思?是不是意味着这个操作会一次性执行?
但是这本书接着给出了一个 wait() 的示例实现:
wait(S) {
while S <= 0
; // no-op
S--;
}
其中有一个 while 循环(这取决于其他进程),它怎么能一次运行(即没有任何其他进程执行发出信号,这将打破 while 循环)
请解释,
【问题讨论】:
标签: synchronization operating-system kernel semaphore interrupt