单选题
对计数型信号量S执行V操作后,下列选项错误的是______。
Ⅰ.当S.value≤0时,唤醒一个阻塞队列进程
Ⅱ.只有当S.value<0时,唤醒一个阻塞队列进程
Ⅲ.当S.value≤0时,唤醒一个就绪队列进程
Ⅳ.只有当S.value<0时,唤醒一个就绪队列进程
A.Ⅱ、Ⅲ
B.Ⅱ、Ⅲ、Ⅳ
C.Ⅰ、Ⅲ
D.Ⅰ、Ⅲ、Ⅳ
A
B
C
D
【正确答案】
B
【答案解析】
[解析] 计数型信号量就是记录型信号量,不要被这个搞混了。 Ⅰ正确。当执行Ⅴ操作后,S.value≤0,说明了在执行Ⅴ操作之前S.value<0(此时S.value的绝对值就是阻塞队列中进程的个数),所以阻塞队列必有进程在等到,所以需要唤醒一个阻塞队列的进程。 Ⅱ错误。由Ⅰ的分析可知,S.value≤0就会唤醒。因为可能在执行Ⅴ操作前,只有一个进程在阻塞队列,也就是说S.value=-1,执行Ⅴ操作后,唤醒该阻塞进程,S.value=0。 Ⅲ和Ⅳ错误。S.value的值和就绪队列中的进程没有此层关系,所以全错。 综上所述,本题选B。
提交答案
关闭