Operating system 如何在给定的图中找到死锁?

Operating system 如何在给定的图中找到死锁?,operating-system,deadlock,Operating System,Deadlock,我给出了两个图,其中一个表示存在死锁,另一个表示没有死锁。但我不明白一个人怎么说没有僵局,一个人怎么说有僵局 下图中的死锁在哪里 完成整个循环的箭头构成死锁。在这种情况下,R2-P2-R3-P3-R2是一个完整的循环。因此,死锁可能会发生。完成整个循环的箭头会形成死锁。在这种情况下,R2-P2-R3-P3-R2是一个完整的循环。因此,可能会出现死锁 Have :- R1 R2 R3 R4 P1 0 1 0 0 P2 1 1 0 0 P3 0 0 1 0 Need :-

我给出了两个图,其中一个表示存在死锁,另一个表示没有死锁。但我不明白一个人怎么说没有僵局,一个人怎么说有僵局

下图中的死锁在哪里


完成整个循环的箭头构成死锁。在这种情况下,R2-P2-R3-P3-R2是一个完整的循环。因此,死锁可能会发生。

完成整个循环的箭头会形成死锁。在这种情况下,R2-P2-R3-P3-R2是一个完整的循环。因此,可能会出现死锁

Have :-
   R1 R2 R3 R4
P1 0  1  0  0
P2 1  1  0  0
P3 0  0  1  0

Need :-
   R1 R2 R3 R4
P1 1  0  0  0
P2 0  0  1  0
P3 0  1  0  0

Available
R1 0
R2 0
R3 0
R4 3
您可以看到,在当前状态下,您无法完成任何进程的请求,进程正在等待其他进程释放资源。因此,这是一个僵局


您可以看到,在当前状态下,您无法完成任何进程的请求,进程正在等待其他进程释放资源。因此,它是一个死锁。

每个进程都在请求一个资源并持有自己的资源,它同时满足互斥、无抢占、持有等待和循环等待条件,因此它是一个死锁。

每个进程都在请求一个资源并持有自己的资源,它满足相互排斥、不优先购买的条件,保持等待和循环等待也是死锁的条件,所以它是一个死锁。

@Amit singh toamr.。我想你可能是在问这个条件,当它只有两个进程组成一个循环时。我已经看到,P2和P4没有请求任何资源,所以我没有创建一个循环,死锁必须是一个循环周期希望能有所帮助。

@Amit singh toamr.。我想你可能是在问当它只使用两个进程进行循环时的情况。我已经看到P2和P4没有请求任何资源,所以我没有进行循环,如果发生死锁,它一定是一个循环。希望能有所帮助。

这是一个完整的循环,可能会出现死锁,但死锁发生的最终条件是什么?我见过有完整的循环,但死锁不会发生的情况。一个完整的循环,可能会发生死锁,但死锁发生的最终条件是什么。我见过这种情况若有完整的循环,但死锁并没有发生,我想问的是,若p3->R2的边缘被移除,那个么死锁就不在了,是真的吗???@Amit:是的。然后p3不再需要任何资源,它完成并释放R3。现在,可以将r3分配给p2,然后p2将执行并释放其锁定的资源。现在,可以将资源分配给p1,p1将执行并释放所有资源。我想问的是,如果p3->R2中的边缘被移除,那么死锁就不存在了,这是真的吗???@Amit:是的。然后p3不再需要任何资源,它完成并释放R3。现在,可以将r3分配给p2,然后p2将执行并释放其锁定的资源。现在,可以将资源分配给p1,p1将执行并释放所有资源。指向的箭头表示“资源-->进程”中的内容是什么?指向的箭头表示“资源-->进程”中的内容是什么?