某系统有同类资源m个供n个进程共享,如果每个进程最多申请x个资源(1<=x<=m),且各进程的最大需求量之和小于(m+n),试证明该系统不会发生死锁。
分析:当每个进程都申请x-1个资源,这个时候如果系统没有资源了,它们中任何一个进程,如果再提出申请1个资源的要求,就会死锁。如果系统还有1个资源,就满足了提出申请资源的某一个进程,它释放所持有的x-1个资源,死锁局面被打破。
所以如果系统死锁必有
n ( x − 1 ) + 1 > m n(x-1)+1>m n(x−1)+1>m
化简一下可以得到
n x > m + n − 1 nx>m+n-1 nx>m+n−1
进一步由不等式可以推出
n x > m + n nx>m+n nx>m+n
这和题目中的条件nx < (m+n)矛盾。
再来一道作业题: