某系统有同类资源m个,被n个进程共享,当M>N和 M<=N时候,每个进程最多请求多少个这类资源,一定不会死锁
麻烦高手指点。谢谢:)我自己想过一个答案抽象数字不会做就用6和2代入也就是说当M》N时候是M/N个(6/2=3),M<N个是1?但是总觉得不对-。-。。。。。...
麻烦高手指点。谢谢:)
我自己想过一个答案 抽象数字不会做就用 6和2 代入 也就是说当 M》N时候是 M/N个 (6/2=3),M<N个是 1?但是总觉得不对-。-。。。。。 展开
我自己想过一个答案 抽象数字不会做就用 6和2 代入 也就是说当 M》N时候是 M/N个 (6/2=3),M<N个是 1?但是总觉得不对-。-。。。。。 展开
1个回答
展开全部
例如11个同类资源被5个进程共享,每个进程最多可以请求多3个资源才能保证系统不会发生死锁。
因为如每个进程都已分配到2个资源,系统还剩下一个资源,就能保证某一个进程能分配到全部3个资源,并能运行到底,最终释放这3个资源。
当m>n时,设一个进程最多可以请求多x个资源,故当
m > n * (x-1)
时,系统不会发生死锁。
于是:
x – 1 < m / n
x < m / n +1
当 m 能被n除尽时,x = m / n
当 m 不能被n除尽时,x = trunc (m / n) +1
当m=n时,每个进程最多可以请求1个资源。
当m < n时,每个进程也最多可以请求1个资源。
因为如每个进程都已分配到2个资源,系统还剩下一个资源,就能保证某一个进程能分配到全部3个资源,并能运行到底,最终释放这3个资源。
当m>n时,设一个进程最多可以请求多x个资源,故当
m > n * (x-1)
时,系统不会发生死锁。
于是:
x – 1 < m / n
x < m / n +1
当 m 能被n除尽时,x = m / n
当 m 不能被n除尽时,x = trunc (m / n) +1
当m=n时,每个进程最多可以请求1个资源。
当m < n时,每个进程也最多可以请求1个资源。
参考资料: sjtu
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询