N个进程共享M个资源,每个进程一次只能申请/释放一个资源,每个进程最多需要M个资源,且所有进程资源需求总和小于M+N,请证明该系统此时不会发生死锁。
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个R类资源,下列哪一种情况不可能发生死锁?( )A) 系统中有6个进程,每个进程需要1个资源B) 系统中有5个进程,每个进程需要2个资源C) 系统中有4个进程,每个进程需要3个资源D) 系统中有3个进程,每个进程需要4个资源A.B.C.D.
一个操作系统有20个进程,竞争使用30个同类资源,申请方式是逐个进行,一旦某个进程获得了它的全部资源,就马上归还所有的资源,每个进程最多使用30,最少使用一个资源。20个进程需要的资源总数小于50。如果仅考虑这类资源,系统会产生死锁吗?请说明理由。
一个系统中存在某类资源m个,被n个进程共享。资源的分配和释放必须一个一个进行,请证明在以下两个条件下不会发生死锁: 每个进程需要资源的最大数在1~m之间; 所有进程需要的资源总数小于m+n;
若某系统有某类资源5个供若干进程共享,不会引起死锁的情况是()A、有6个进程,每个进程需1个资源B、有5个进程,每个进程需2个资源C、有4个进程,每个进程需3个资源D、有3个进程,每个进程需4个资源
若系统有某类资源10个供若干进程共享,下列可能引起死锁的情况是()A、有2个进程,每个进程需3个资源B、有3个进程,每个进程需3个资源C、有4个进程,每个进程需3个资源D、有5个进程,每个进程需3个资源
单选题若某系统有某类资源5个供若干进程共享,不会引起死锁的情况是()A有6个进程,每个进程需1个资源B有5个进程,每个进程需2个资源C有4个进程,每个进程需3个资源D有3个进程,每个进程需4个资源
单选题若系统有某类资源10个供若干进程共享,下列可能引起死锁的情况是()A有2个进程,每个进程需3个资源B有3个进程,每个进程需3个资源C有4个进程,每个进程需3个资源D有5个进程,每个进程需3个资源
问答题一个操作系统有20个进程,竞争使用30个同类资源,申请方式是逐个进行,一旦某个进程获得了它的全部资源,就马上归还所有的资源,每个进程最多使用30,最少使用一个资源。20个进程需要的资源总数小于50。如果仅考虑这类资源,系统会产生死锁吗?请说明理由。
问答题假设三个进程共享四个资源,每个进程一次只能预定或释放一个资源,每个进程最多需要两个资源,试证明这样做不会发生死锁。