某系统有同类资源m个,被n个进程共享,当M>N和 M<=N时候,每个进程最多请求多少个这类资源,一定不会死锁

麻烦高手指点。谢谢:)
2025-03-04 21:42:02
推荐回答(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个资源。