Operating system 信号量总是防止死锁吗?

Operating system 信号量总是防止死锁吗?,operating-system,deadlock,semaphore,Operating System,Deadlock,Semaphore,我对该主题的研究表明,信号量不允许某个进程进入另一个进程的关键部分。然而,在某些情况下,这是可能的,国际海事组织 假设有两个过程,P1和P2。有两种资源,R1和R2。 P1已获得R1,P2已获得R2。但是P1需要R2从临界区出来,P2需要R1也这样做 这是一种可能发生死锁的情况吗?没有任何信号并不总是能防止死锁。查看链接了解详细信息 是的,两个进程等待对方释放资源或已绘制/获取信号量是死锁的典型示例。上述链接中的更多细节与您的困惑非常相关资源不能“从[它们的]关键部分出来”。您的意思是它们受信

我对该主题的研究表明,信号量不允许某个进程进入另一个进程的关键部分。然而,在某些情况下,这是可能的,国际海事组织

假设有两个过程,P1和P2。有两种资源,R1和R2。 P1已获得R1,P2已获得R2。但是P1需要R2从临界区出来,P2需要R1也这样做


这是一种可能发生死锁的情况吗?

没有任何信号并不总是能防止死锁。查看链接了解详细信息


是的,两个进程等待对方释放资源或已绘制/获取信号量是死锁的典型示例。上述链接中的更多细节与您的困惑非常相关

资源不能“从[它们的]关键部分出来”。您的意思是它们受信号量保护,P1和P2分别等待它们增加(或释放)?您的描述与您的标题不同;您的描述询问信号量是否总是防止死锁,您的描述询问确认在特定情况下是否会发生死锁。非常感谢……我理解得很好。@slayer:因此,您通过向上投票和/或接受答案来感谢某人。:)