第1题:
某操作系统有T个同类资源。现有两个进程P1和P2分别需要申请M和N个这类资源,M+N>>T,M<T且N<T。规定:进程只能在运行过程中逐个地申请并得到资源,只有在得到所有资源后才会立即释放所有资源,在没有达到所需要的资源总数时不会释放资源。令进程P1和P2在某一时刻拥有的资源数量分别为m和n个,那么,只有在(26)时,系统是安全的。
A.M+N<T
B.M+N≤T
C.(x<(T-N))∩(y<N)∪((T-M)≤x<M)∩(y<(T-M))∪(x=(T-N)∩(y=(T-M))
D.(0≤x<(T-N))∪(x<(T-M))
第2题:
A.3
B.4
C.5
D.6
第3题:
若系统中有若干进程共享5个R类资源,下列哪一种情况不可能发生死锁?( )
A) 系统中有6个进程,每个进程需要1个资源
B) 系统中有5个进程,每个进程需要2个资源
C) 系统中有4个进程,每个进程需要3个资源
D) 系统中有3个进程,每个进程需要4个资源
A.
B.
C.
D.
第4题:
若有3个并发进程共享某类资源,且每个进程需要2个此类资源,为保证该系统不发生死锁,此类资源的最少数量应是()。
第5题:
某系统有同类资源m个供n个进程共享,如果每个进程最多申请k个资源(1≤k≤m),为保证系统不发生死锁,则各进程的最大需求量之和应()
第6题:
A.6
B.7
C.8
D.9
第7题:
一个操作系统有20个进程,竞争使用30个同类资源,申请方式是逐个进行,一旦某个进程获得了它的全部资源,就马上归还所有的资源,每个进程最多使用30,最少使用一个资源。20个进程需要的资源总数小于50。如果仅考虑这类资源,系统会产生死锁吗?请说明理由。
设max(i)表示第i个进程的最大资源需求量,
need(i)表示第i个进程还需要的资源量,
alloc(i)表示第i个进程已分配的资源量。
由题中所给条件可知:
max(1)+…+max(20)=(need(1)+…need(20))+(alloc(1)+…+alloc(20))<50
如果在这个系统中发生了死锁,那么一方面30个资源R应该全部分配出去,即(反证法)alloc(1)+…+alloc(20)=30
另一方面所有进程将陷入无限等待状态。
由上述两式可得:need(1)+…+need(20)<20(关键)
上式表示死锁发生后,20个进程还需要的资源量之和小于20,这意味着此刻至少存在一个进程i,need(i)=0,即它已获得了所需要的全部资源。既然该进程已获得了它所需要的全部资源,那么它就能执行完成并释放它占有的资源,这与前面的假设矛盾,从而证明在这个系统中不可能发生死锁。
略
第8题:
假设有3个进程竞争同类资源,如果每个进程需要2个该类资源,则至少需要个该类资源,才能保证不会发生死锁。
第9题:
N个进程共享M个资源,每个进程一次只能申请/释放一个资源,每个进程最多需要M个资源,所有进程总共的资源需求少于M+N个,证明该系统此时不会产生死锁。
第10题:
考虑一个由四个同类资源组成的系统,有三个进程共享这些资源,每个进程至多需要两个资源,试说明该系统是无死锁的。