设有n个进程使用同一个共享变量,如果最多允许m(m<n)个进程同时进入相关临界区,则信号量的变化范围是( )。

admin2019-03-01  30

问题 设有n个进程使用同一个共享变量,如果最多允许m(m<n)个进程同时进入相关临界区,则信号量的变化范围是(    )。

选项 A、n,n—1,….,n—m
B、m,m—1,….,1,0,—1,m—n
C、m,m—1,….,1,0,—1,m—n—1
D、m,m—1,….,1,0,—1,m—n+1

答案B

解析 由题意可知,信号量有如下几种状态:
    m:没有进程进入到临界区,可以允许m个进程进入。
    m—1:有一个进程进入到临界区,还可以允许m_1个进入。
    0:有m个进程进入到临界区,不允许任何进程进入,但暂时没有资源等待。
    —1:临界区已经被占满,而且已经有一个进程进入到等待队列中。
    —(n—m)=m—n:最坏的情况,临界区已满,且剩下的进程全部进入到等待队列。
转载请注明原文地址:https://jikaoti.com/ti/Oki7FFFM
0

最新回复(0)