关于临界资源分配的一道题

(2016.25)系统中有三个不同的临界资源R1,R2,R3,被4个进程p1,p2,p3,p4共享。各进程对资源的需求为:p1申请R1和R2和R3,p3申请R2和R3,p3申请R1和R3,p4申请R2。若系统出现死锁,则处于死锁状态的进程数至少是:C

A. 1 B. 2 C. 3 D. 4

资源分配图如下:


图片发自App

可以看出,P4是不影响系统最终状态的,因为只要给它分配资源,完成后就会释放资源。

所以,不管给不给P4分配资源,最终三类资源都是在P1,P2,P3之间进行分配

简化后的资源分配图如下:

图片发自App

由于资源和进程都是完全对称的,所以对资源的分配可以分两种情况

①第1种情况下,有了循环(题目中并没有给出各类资源的具体个数。资源数-出边≥入边?无法判断,所以不一定发生死锁),按照题目要求,此刻发生了死锁。那么必定是三个进程都无法进行,因为只要有一个进程申请的资源得到满足,完事后就会释放相邻的资源。循环状态就被破坏了,没有循环,一定不会发生死锁。

②第2种情况下,可以看出并没有形成循环。所以它是可以完全化简成孤立状态的。所以这种情况下必定不会发生死锁。


图片发自App

总结一下。

死锁只可能发生在上图的第1种情况。如果事先分配资源给P4进程,那么死锁进程就是p1、P2、P3,3个。如果没有分配的话,4个进程都是死锁状态

你可能感兴趣的:(关于临界资源分配的一道题)