【发布时间】:2012-05-13 07:48:11
【问题描述】:
我正在阅读“操作系统概念”中有关信号量的内容(对于那些了解它的人),并且我认为我完全理解了信号量,直到我阅读了这段话:
信号量的关键方面是它们被执行 原子地。我们必须保证没有两个进程可以执行等待 同时对同一个信号量进行信号操作。
还有:
如果硬件不提供任何特殊的原子指令,我们 可以为关键部分使用任何软件解决方案 问题,其中关键部分由等待和信号组成 程序。
这段话是指面对Signal 和Wait 操作必须是原子的。
我认为信号量的全部目的是在任何给定时间只让一个进程进入关键部分 - 如果我必须使用另一种算法(如面包店算法),为什么我还需要信号量?
我意识到我的问题可能令人困惑。如果是,那只是因为主题对我来说还很模糊,所以即使问一个问题也有点困难。
希望阅读任何说明...
【问题讨论】:
标签: semaphore critical-section