📜  门| GATE-CS-2014-(Set-2) |第 41 题

📅  最后修改于: 2021-09-26 03:28:45             🧑  作者: Mango

考虑以下使用信号量的生产者-消费者问题的过程:

GATECS2014Q30

以下哪一项是正确的?
(A)生产者将能够向缓冲区添加一个项目,但消费者永远不能消费它。
(B)消费者将从缓冲区中移除不超过一件物品。
(C)如果消费者在缓冲区为空时成功获取到信号量,就会发生死锁。
(D)对于无死锁操作,信号量 n 的起始值必须是 1 而不是 0。

答案: (C)
说明:最初,缓冲区中没有元素。
信号量s=1和信号量n=0
我们假设当缓冲区为空时,最初的控制权交给了消费者。

semWait(s)递减信号量 ‘s’ 的值。现在,s = 0 并且semWait(n)递减信号量 ‘n’ 的值。
由于信号量 ‘n’ 的值小于 0 ,控制卡在函数semWait() 的 while 循环中并出现死锁。
因此,如果消费者在缓冲区为空时成功获取 semaphore ,则会发生死锁。

观看 GeeksforGeeks 视频说明:

如果您发现上面的帖子有任何错误,请在下面发表评论。
这个问题的测验