死锁概念
死锁是指两个或多个进程在执行的
过程中,因为竞争资源而造成互相等待的
现象,若无外力作用,它们都无法推进下
去。
1.在等待对方时占有不可抢占的资源
举个例子,假设有P1,P2两个进程,都需
要A和B两个资源,两个都等待另一个资源
而不肯释放资源,就这样无限等待中,这
就形成死锁。这只是死锁的一种情况,就
是在等待对方时占有不可抢占的资源。
2.竞争可消耗资源引起死锁
有P1, P2, P3三个进程,P1向P2发送消息
并接受P3消息. p2向P3发送消息并接受p2
消息,P3向P1发送消息并接受P2消息,如
果设置是先接到消息后发送消息,则所有
的消息都不能发送,也造成了死锁。
3.进程推进顺序不当引起死锁
有进程P1,P2,都需要资源A,B,本来可
以P1运行A,P1运行B,P2运行B,P2运行
A. p2运行B、但顺序换了,p1运行A时P2
运行B,容易引发死锁,属于第一种的资源
抢占问题。