例题分析——根据条件判断是否发生死锁,已知资源数M、进程数N、最大需求数W

原文链接:https://blog.csdn.net/weixin_42711189/article/details/115484640

设系统中仅有一类数量为M的独占型资源,系统中有N个进程竞争该类资源,其中各进程对该类资源的最大需求数为W,当M,N,W分别取下列值时,试判断哪些情况会发生死锁,为什么?

1.M=2,N=2,W=1
2.M=3,N=2   W=2
3.M=3,N=2,W=3
4.M=5  N=3  W=2
5.M=6  N=3  W=3
 

解答:  

1.不会发生死锁。因为系统中只有两个进程,每个进程的最大需求量为1,且系统中资源总数为2,系统能够满足两个进程的最大资源需求量,故不会发生死锁。

2.不会发生死锁。因为系统中有两个进程,每个进程的最大资源需求量为2,且系统中资源总数为3,无论如何分配,两个进程中必有一个进程可以获得两个资源,该进程将顺利完成,从而可以将分配给它的资源归还给系统,使另一个进程也能顺利执行完成,故不会发生死锁。

3.可能发生死锁。因为系统中有两个进程,每个进程的最大资源需求量为3,且系统中资源总量为3,若系统先将全部资源分配给其中一个过程,则该进程将顺利完成,从而可将分配给它的资源归还给系统,使另一进程也能顺利完成,以这种方式分配资源时不会发生死锁;若系统将两个资源分配给一个过程,而剩余的一个资源分配给另一个进程,则系统中没有空闲资源,而每个进程都需要等待资源,此时发生死锁。

4.不会发生死锁。因为系统中有3个过程,每个进程的最大资源需求量为2,且系统中资源总量为5,无论如何分配,3个进程中必有一个进程可以获得2个资源,该进程将顺利完成,从而可以将分配给它的资源归还给系统,使其他进程也能顺利执行完成,故不会发生死锁

5.可能会发生死锁。因为系统中有3个进程,每个进程的最大资源需求量为3,且系统中资源总数为6  ,若系统先将3个资源分配给其中一个过程,则该进程将顺利完成,从而可将分配给它的资源归还给系统,使其他进程也能顺利完成,以这种方式分配资源时不会发生死锁;若系统给每个进程分配两个资源,则系统中没有空间资源,而每个进程都需要等待一个资源,此时发生死锁。

原文地址:https://www.cnblogs.com/best-hym/p/14872952.html