我阅读有关“操作系统概念”信号灯(对于那些你们谁知道),我想我完全了解信号灯,直到我读到这样一段话:了解信号灯
信号灯的重要方面它们是以原子方式执行 。我们必须保证没有两个进程可以同时执行等待 和对同一信号量的信号操作。
而且也:
如果硬件不提供任何特殊的原子操作,我们 可以使用任何的软件解决方案的关键部分 问题,其中的关键部分包括等待和信号 程序。
这段话是指面对Signal
和Wait
的操作必须是原子的。 我认为信号量的全部目的是让任何时候只有一个进程在关键部分 - 如果我必须使用另一种算法(如面包店算法),为什么我还需要信号量?
我意识到我的问题可能会让人困惑。如果是这样,那只是因为这个话题对我来说依然模糊,所以即使提出一个问题也有点困难。
很想读任何澄清...
看看有什么困惑我的是,你建立一个锁,然后您“锁上的锁” ... – yotamoo