工学

问答题假设三个进程共享四个资源,每个进程一次只能预定或释放一个资源,每个进程最多需要两个资源,试证明这样做不会发生死锁。

题目
问答题
假设三个进程共享四个资源,每个进程一次只能预定或释放一个资源,每个进程最多需要两个资源,试证明这样做不会发生死锁。
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

假设系统由相同类型的9个资源被4个进程共享,试分析每个进程最多可以请求多少个资源数时该系统仍无死锁?()

A 1

B 2

C 3

D 4


参考答案C

第2题:

若有4个并发进程共享某类资源,且每个进程需要3个此类资源,则使该系统不会发生死锁的最少资源数是()。

A.6

B.7

C.8

D.9


参考答案:D

第3题:

若系统中有若干进程共享5个R类资源,下列哪一种情况不可能发生死锁?( )

A) 系统中有6个进程,每个进程需要1个资源

B) 系统中有5个进程,每个进程需要2个资源

C) 系统中有4个进程,每个进程需要3个资源

D) 系统中有3个进程,每个进程需要4个资源

A.

B.

C.

D.


正确答案:A

第4题:

N个进程共享M个资源,每个进程一次只能申请/释放一个资源,每个进程最多需要M个资源,所有进程总共的资源需求少于M+N个,证明该系统此时不会产生死锁。 


正确答案: 设max (i)表示第i个进程的最大资源需求量,need(i)表示第i个进程还需要的资源量,alloc(i)表示第i个进程已分配的资源量。由题中所给条件可知: 
max(1)+┅+max(n)=(need(1)+┅+need(n))+((alloc(1)+┅+alloc(n)) 如果在这个系统中发生了死锁,那么一方面m个资源应该全部分配出去,          
alloc(1)+ ┅+alloc(n)=m 
另一方面所有进程将陷入无限等待状态。可以推出          
need(1)+ ┅+need(n) 上式表示死锁发生后,n个进程还需要的资源量之和小于n,这意味着此刻至少存在一个进程i,need(i)=0,即它已获得了所需要的全部资源。既然该进程已获得了它所需要的全部资源,那么它就能执行完成并释放它占有的资源,这与前面的假设矛盾,从而证明在这个系统中不可能发生死锁。

第5题:

假设系统由相同类型的7个资源被3个进程共享,若要使系统不会死锁,每个进程最多可以申请的资源个数是

A.1

B.2

C.3

D.4


正确答案:C

第6题:

假设有3个进程竞争同类资源,如果每个进程需要2个该类资源,则至少需要个该类资源,才能保证不会发生死锁。


正确答案:4
针对本题,首先可以使用逆向思维进行思考:3个进程,每个进程需要两个同类资源,那么总共需多少个资源呢?有以下几种情况。
—    资源总数为1,则不管哪个资源占用该资源,都会导致无条件死锁。
—    资源总数为2,可分两种情况:一个进程占用两个资源,直到它执行完毕后释放,然后又由另一进程同时占用这两个资源,由最后一个进程使用,这样不会导致死锁;两个资源若不为某一进程独占,将会导致死锁,一般称这种状态是不安全的。
—    资源总数为3,与第(2)条同理。
—    资源总数为4,则无论资源如何分配,都不会导致死锁。
用公式可以总结如下:
资源总数(安全的)= 进程数 ´(每个进程所需资源数-1)+ 1

第7题:

若两个并发进程共享4个同类资源,为使系统不会死锁,则每个进程至多可以申请()个该类资源。

A.1

B.2

C.3

D.4


参考答案:B

第8题:

某系统有4个进程,每个进程最多需要2个同类资源,则该系统不会发生死锁的最少资源数是()。

A、4

B、5

C、6

D、7


参考答案:A

第9题:

一个系统中存在某类资源m个,被n个进程共享。资源的分配和释放必须一个一个进行,请证明在以下两个条件下不会发生死锁: 每个进程需要资源的最大数在1~m之间; 所有进程需要的资源总数小于m+n;

第10题:

有相同类型的5个资源被4个进程所共享,且每个进程最多需要2个这样的资源就可以运行完毕。试问该系统是否会由于对这种资源的竞争而产生死锁。


正确答案: 该系统不会由于对这种资源的竞争而产生死锁。因为在最坏情况下,每个进程都需要2个这样的资源,且每个进程都已申请到了1个资源,那么系统中还剩下1个可用资源。无论系统为了满足哪个进程的资源申请而将资源分配给该进程,都会因为该进程已获得了它所需要的全部资源而确保它运行完毕,从而可将它占有的2个资源归还给系统,这就保证了其余三个进程能顺利运行。由此可知,该系统不会由于对这种资源的竞争而产生死锁。

更多相关问题