对计录型信号量S执行V操作后,下列选项中错误的是( )。 Ⅰ.当S.value≤0时,唤醒一个阻塞队列进程 Ⅱ.只有当S.value<0时,唤醒一个阻塞队列进程 Ⅲ.当S.value<=0时,唤醒一个就绪队列进程 Ⅳ.当S.value>0时,系统不做额外操作
【正确答案】
D
【答案解析】解析: 当执行V操作后,S.value≤0,说明了在执行V操作之前S.value<0(此时S.value的绝对值就是阻塞队列中的进程的个数),所以阻塞队列必有进程在等待,所以需要唤醒一个阻塞队列进程,Ⅰ正确。由Ⅰ的分析可知,S.value≤0就会唤醒。因为可能在执行V操作前,只有一个进程在阻塞队列,也就是说S.value=一1,执行V操作后,唤醒该阻塞进程,S.value=0,Ⅱ错误。S.value的值和就绪队列中的进程没有此层关系,Ⅲ错误。而当S.value>0时,说明没有进程在等待该资源,系统自然不做额外的操作,Ⅳ正确。