死锁
死锁的定义:死锁是若干进程都无知地等待对方释放资源而处于无休止的等待状态。
死锁发生的必要条件:
1.资源的互斥作用。进程一旦获得资源,就不允许别的进程使用该资源,这表明独享资源是引起死锁的一个条件。
2.资源不可抢占。当进程获得资源后,就一直占有资源直到使用完毕后释放。如果死锁发生时,有进程强行地从别的进程手中抢得资源,则该进程就可以运行,因此不会发生死锁。
3.资源的部分分配。如果进程申请若干资源,但只获得其中一部分,则必然等待另外一部分,而如果等待的另外一部分资源被别的进程占有,该进程继续运行的机会显然减少,如果一次将它需要的所有资源都予以分配,则必然不会发生死锁。
4.循环等待。当若干进程对资源的等待构成等待环路时(如下图所示),显然死锁已经发生,如果某种外部作用使环路消除,死锁状态也就被解除。