Linux中使用信号量的有界缓冲区问题

Linux中使用信号量的有界缓冲区问题,linux,semaphore,paging,Linux,Semaphore,Paging,我试图更清楚地理解有界缓冲区问题(消费者/生产者),因为我知道这个问题的解决方案之一是使用3个信号量 1.在数组中保留完整位置的FULL 2.空,其中包含阵列中的可用位置 3.保存数字1或0的互斥体 是否有可能进一步解释这意味着什么,例如,如果满的数量为负数?或者空的数量是负数 这可能是互斥量不是1或0吗?如果是,那意味着什么?页面错误和信号量是正交的。我知道,但不是两篇不同的文章。我把这两个问题都贴在这里了。这个网站不是这样运作的。每个问题请回答一个问题。编辑,你对这个问题有什么答案吗?信号量

我试图更清楚地理解有界缓冲区问题(消费者/生产者),因为我知道这个问题的解决方案之一是使用3个信号量 1.在数组中保留完整位置的FULL 2.空,其中包含阵列中的可用位置 3.保存数字1或0的互斥体

是否有可能进一步解释这意味着什么,例如,如果满的数量为负数?或者空的数量是负数


这可能是互斥量不是1或0吗?如果是,那意味着什么?

页面错误和信号量是正交的。我知道,但不是两篇不同的文章。我把这两个问题都贴在这里了。这个网站不是这样运作的。每个问题请回答一个问题。编辑,你对这个问题有什么答案吗?信号量从来都不是消极的,所以它根本没有任何意义。如果试图将信号量减少到0以下,操作将被阻止。如果使用正确的互斥,则不存在0或1,存在锁定状态和解锁状态。如果将信号量用作互斥体,通常不应该这样做,因为它们是为不同的目的而设计的,那么实际上它总是0(锁定)或1(解锁)。