某操作系统有T个同类资源。现有两个进程P1和P2分别需要申请M和N个这类资源,M+N>>T,M<T且N<T。规定:进程只能在运行过程中逐个地申请并得到资源,只有在得到所有资源后才会立即释放所有资源,在没有达到所需要的资源总数时不会释放资源。令进程P1和P2

admin2013-05-11  36

问题 某操作系统有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))

答案C

解析 本题考查的是死锁的银行算法及其应用方面的知识。
   通常,在发生死锁之前,系统可以分为3种状态:安全状态、临界状态和不安全状态。所谓安全状态是指此时只要根据系统制定的资源分配粒度,只要资源可供分配,不管如何分配都不会最后导致系统死锁;所谓临界状态是安全状态与不安全状态之间的过渡状态,此时必须对资源的分配强制实行某些策略,实行某种意义上的定向分配策略,对某些用户即使资源可供分配也不能分配;不安全状态则是死锁的前奏,它是一种不可逆状态,死锁是它的必然归宿。在这3种状态之间,安全状态可以进入临界状态,临界状态可以进入不安全状态。
   银行算法要求系统实现知道每个进程所需要的每类资源的总需要量,而且规定资源只能逐个申请并获得。只有在某类资源全部得到后,进程才一起将它们释放。本题是单类资源的死锁问题。
                              
   上图可以比较直观地说明问题。图中黑点代表当前两个进程的资源获得情况,黑点的横坐标代表当前分配给进程的P1资源数量m,纵坐标代表当前分配给进程P2的资源数量n。由于进程在资源没有全部得到之前不会释放,黑点的移动只能是上移或右移,而且将不可能移出斜线x+y=T到达绿色区域的右上部(因为系统拥有的资源总数为T)。而且由于进程需要的资源总量是确定的,黑点将只能在黄色部分和绿色矩形的左下半部分内单调向上或向右移动。而且,由于进程一旦得到全部资源将立即释放,所以黑点不可能停留在黄色区域的上边线和右边线。
   这样,当黑点处于黄色区域(含黄、绿区域交界线的交点)时,系统处于安全状态;黑点处于黄色区域和绿色区域的交界线时,系统处于临界状态;黑点处于绿色区域时,系统处于不安全状态。
   显然,x,y均不小于0时隐含的。
   黄色区域的条件是:(x<(T-N))∩(y<N)∪((T-M)≤x<M)∩(y<(T-M)))
   黄、绿区域交界线的交点的条件是:x=(T-N)∩y=(T-M)
   于是,安全区域的条件为:(x<(T-N))∩(y<N)∪((T-M)≤x<M)∩(Y<(T-M))≤(x=(T-N)∩(y=(T-M))
   正确答案应是C。
转载请注明原文地址:https://kaotiyun.com/show/QERZ777K
0

最新回复(0)