在进程资源有向图中,圆圈表示进程,方框表示资源,方框内的小圆数表示资源数。当有向边(或称请求边)由进程指向资源时,表示申请一个资源;当有向边(或称分配边)由资源指向进程时,表示获得一个资源。假设系统中有三个进程P1、P2和P3,两种资源R1、R2,且R1的资源数等于3,R2的资源数等于3。如果进程资源图如图(a)和图(b)所示,那么图(a)中(P1、P2、P3 都是阻塞节点,该图不可以化简,是死锁的);图(b)中(P3 是非阻塞节点,P1, P2 是阻塞节点,该图可以化简,是非死锁的) 。

进程资源有向图中,圆圈代表进程,方框代表资源,方框内的小圆代表资源实例数量;从进程指向资源的有向边是请求边,代表进程申请1个对应资源,从资源指向进程的有向边是分配边,代表进程已获得1个对应资源。判断系统是否死锁可采用化简法:首先判断进程是否为阻塞节点,若进程的资源申请无法被系统当前剩余的对应资源实例满足,该进程即为阻塞节点;若进程占有资源且无资源申请,或资源申请能被剩余资源满足,则为非阻塞节点。若系统中所有进程均为阻塞节点,没有进程能继续执行并释放占有的资源,进程资源图无法化简,则系统处于死锁状态。若存在非阻塞节点,可先让该进程执行完毕,释放其占有的全部资源,再用释放的资源尝试满足其他进程的资源申请,重复此过程,若最终所有进程都能完成执行,则系统无死锁。实际场景中,资源实例的剩余量直接影响进程申请的满足情况,无资源申请的进程是解锁的关键,其释放的资源可逐步解除其他进程的阻塞状态。
本题考察的是进程资源分配图中死锁状态的判断方法。
本小问答案是 P1、P2、P3 都是阻塞节点,该图不可以化简,是死锁的。如果进程资源图如图(a)和图(b)所示,那么图(a)中P1、P2、P3 都是阻塞节点,该图不可以化简,是死锁的。
A. P1、P2、P3 都是阻塞节点,该图不可以化简,是死锁的:P1、P2、P3 都是阻塞节点,该图不可以化简,是死锁的与题干限定一致,正确。
B. P1、P2、P3 都是非阻塞节点,该图可以化简,是非死锁的:与题干限定不匹配,错误。
C. P1、P2 是非阻塞节点,P3 是阻塞节点,该图不可以化简,是死锁的:与题干限定不匹配,错误。
D. P2 是非阻塞节点,P1、P3是阻塞节点,该图可以化简,是非死锁的:与题干限定不匹配,错误。
因此,选项 A 正确。
