首页 > 试题广场 >

假设有N个程序,M个资源,每个进程需要的资源数为W,请按以下

[不定项选择题]

假设有N个程序,M个资源,每个进程需要的资源数为W,请按以下给出的N . M和W,计算以下那个可能引起死锁(      )

  • N=2,M=2,W=1
  • N=2,M=3,W=2
  • N=2,M=3,W=3
  • N=3,M=5,W=2
  • N=3,M=6,W=3
推荐
在资源分配系统中,死锁发生的原因是由于多个进程共享有限的独占型资源。当多个进程占有了部分资源又需要更多的资源时,就可能形成循环等待链而导致死锁。
假设系统中的某种资源的个数为M,共享该资源的进程数为N,每个进程对该资源的最大需求量为W。最极端的资源分配情况是:每个进程都已经占有了W-1个资源,同时都需要再分配一个资源,这时如果要保证不发生死锁,系统中必须至少还有一个可分配的资源,即M满足关系式:M≥N(W-1)+1。
因此保证系统不会发生死锁的最小M值为:M=N(W-1)+1。
(1)N(W-1)+1=2×0+1=1,而M=3,即M≥N(W-1)+1成立,故不会出现死锁。
(2)N(W-1)+1=2×1+1=3,而M=3,即M≥N(W-1)+1成立,故不会出现死锁。
(3)N(W-1)+1=2×2+1=5,而M=3,即M≥N(W-1)+1不成立,故可能出现死锁。出现死锁的情况是:两个进程一个占用2个资源,一个占用1个资源,同时都需要再分配资源。
(4)N(W-1)+1=3×1+1=4,而M=5,即M≥N(W-1)+1成立,故不会出现死锁。
(5)N(W-1)+1=3×2+1=7,而M=6,即M≥N(W-1)+1不成立,故可能出现死锁。出现死锁的情况是:3个进程都已经占有了2个资源,同时都需要再分配一个资源。
编辑于 2016-12-07 12:00:14 回复(1)
更多回答
在资源分配系统中,死锁发生的原因是由于多个进程共享有限的独占型资源。当多个进程占有了部分资源又需要更多的资源时,就可能形成循环等待链而导致死锁。
假设系统中的某种资源的个数为M,共享该资源的进程数为N,每个进程对该资源的最大需求量为W。最极端的资源分配情况是:每个进程都已经 占有了W-1个资源,同时都需要再分配一个资源,这时如果要保证不发生死锁,系统中必须至少还有一个可分配的资源,即M满足关系式:M≥N(W- 1)+1。
因此保证系统不会发生死锁的最小M值为:M=N(W-1)+1。
(1)N(W-1)+1=2×0+1=1,而M=3,即M≥N(W-1)+1成立,故不会出现死锁。
(2)N(W-1)+1=2×1+1=3,而M=3,即M≥N(W-1)+1成立,故不会出现死锁。
(3)N(W-1)+1=2×2+1=5,而M=3,即M≥N(W-1)+1不成立,故可能出现死锁。出现死锁的情况是:两个进程一个占用2个资源,一个占用1个资源,同时都需要再分配资源。
(4)N(W-1)+1=3×1+1=4,而M=5,即M≥N(W-1)+1成立,故不会出现死锁。
(5)N(W-1)+1=3×2+1=7,而M=6,即M≥N(W-1)+1不成立,故可能出现死锁。出现死锁的情况是:3个进程都已经占有了2个资源,同时都需要再分配一个资源。
发表于 2017-04-17 19:14:41 回复(0)
假设有4个程序为A、B、C、D,10个资源为a、b、c、d、e、f、g、h、i、j,每个进程需要的资源数为3.
那么10>4*(3-1)+1满足公式M>=N(W-1)+1. 好像不会出现死锁的情况。
但是如果是这个情况:A程序需求a、b、c资源,B程序需求d、e、f资源C程序需求g、h、i资源,D程序需求j、a、b资源。并且刚好出现A占有b、c资源申请a,D占有j、a资源申请b,这时就死锁了。
那是因为B、C程序与A、D程序并不存在资源抢占关系,所以运用公式时的实际情况就是N=2,M=4,W=3,确实不满足M>=N(W-1)+1。但是题目中并没有说明这N个程序互相存在资源抢占的关系,感觉不是很严谨!
发表于 2018-06-13 16:59:28 回复(0)
答案是 C E
发表于 2016-12-04 20:18:49 回复(1)
明显是

C E

发表于 2016-11-28 21:46:49 回复(1)
M>=N(W-1)+1. 好像不会出现死锁的情况。
发表于 2019-07-30 22:38:18 回复(0)
简单理解一下就是,最坏的情况每个程序进程都占据资源,如果所有资源都被占用,而还有程序的进程没占据到资源,就会死锁, 就像三个人吃饭,每个人都有两个包子的份额,最坏的情况就是前两个人吃了四个包子,如果有第五个包子就不会饿死人,如果没有就会饿死
发表于 2022-10-07 16:03:10 回复(0)
M>=N(W-1)+1. 不会出现死锁的情况
发表于 2022-05-11 18:33:20 回复(0)
产生死锁的条件:
互斥条件
请求和保持条件
不可抢占条件
循环等待条件
根据题目给出的从资源供给上解决死锁的条件,所以每个进程均差一个资源的情况下形成僵持。
C. N=2,M=3,W=3,若A进程拿了2个资源,B进程拿了一个资源,相互僵持则造成死锁;
D. N=3,M=6,W=3,若A进程拿了2个资源,B进程拿了2个资源,C进程拿了2个资源,相互僵持造成死锁。
发表于 2021-11-25 00:53:40 回复(0)
出现一种情况就会产生死锁,每一个进程都占有资源,却都不满足
发表于 2019-12-05 15:07:13 回复(0)
银行家算法吧发表解析
发表于 2018-04-22 16:32:53 回复(0)
M>n*(w-1)
发表于 2018-04-11 11:11:57 回复(0)
M>N*(W-1)
发表于 2017-05-30 10:14:24 回复(0)