一.死锁
死锁的规范定义如下:
如果一个进程集合中的每个进程都在等待只能由该进程集合中的其他进程才能引发的事件,那么,该进程集合就是死锁的。
二.资源死锁的条件
1.互斥条件。每个资源要么已经分配给了一个进程,要么就是可用的。
2.占有和等待条件。已经得到了某个资源的进程可以再请求新的资源。
3.不可占有条件。已经分配给一个进程的资源不能强制性地被抢占,它只能被占有它的进程显式地释放。
4.环路等待条件。死锁发生时,系统中一定有两个或两个以上的进程组成的一条环路,该环路中的每个进程都在等待着下一个进程所占有的资源。
死锁发生时,以上四个条件一定是同时满足的。如果其中任何一个条件不成立,死锁就不会发生。
三.死锁判断
死锁的判断最直接的方式是使用资源分配图。资源分配图是一个有向图,图中有两种节点:用圆形表示进程,用矩形表示资源。从资源节点到进程节点的有向边代表该资源已被该进程占用,有进程节点到资源节点的有向边表明当前进程正在请求该资源。
资源分配图中能够形成环的节点表示这些节点出现了死锁。