如果在资源分配图中形成一个循环,其中所有资源都有单个实例,则系统将死锁。
在具有多实例资源类型的资源分配图的情况下,周期是死锁的必要条件,但不是充分条件。
以下示例包含三个进程P1,P2,P3和三个资源R2,R2,R3。 所有资源都有单个实例。
如果我们分析图表,那么我们可以发现图表中存在一个循环,因为系统满足所有四种死锁条件。
分配矩阵可以通过使用系统的资源分配图来形成。 在分配矩阵中,将为每个分配的资源分配一个条目。 例如,在下面的矩阵中,因为R3被分配给P1,所以在P1之前和R3之下进行输入。
在请求矩阵中,将为每个请求的资源输入一个条目。 如以下示例所示,P1需要R1,因此在P1之前和R1之下进行输入。
Avial =(0,0,0)
我们既没有系统中的任何资源,也没有将要发布的进程。 每个进程至少需要一个资源才能完成,因此他们将持续保持每一个资源。
我们无法满足使用可用资源的至少一个进程的需求,因此当在图中检测到一个循环时,系统就会被锁定,如前所述。