【发布时间】:2015-09-22 09:16:27
【问题描述】:
我对该主题的研究表明,信号量不允许某个进程进入另一个进程的临界区。不过,在某些情况下,这应该是可能的,IMO。
假设有两个进程,P1 和 P2。有两个资源,R1 和 R2。 P1 获得了 R1,P2 获得了 R2。但是 P1 需要 R2 从其临界区中出来,而 P2 也需要 R1 做同样的事情。
这种情况可能会发生死锁吗?
【问题讨论】:
-
资源不能“从[他们的]关键部分[s]中出来”。您的意思是它们受信号量保护,并且 P1 和 P2 分别等待它们增加(或释放)吗?
-
您的描述与您的标题不同;您的描述询问信号量是否总是防止死锁,您的描述要求确认在特定情况下是否可能发生死锁。
标签: operating-system deadlock semaphore