
PV操作是在信号量上的操作。若某进程在调用V操作后释放了一个正在等待信号量的进程,那么在调用前信号量的值为() A. =0 B. =1 C. <0 D. >0
要确定V操作前的信号量值,需结合信号量的含义及PV操作的逻辑。信号量S的取值代表资源状态:S>0表示可用资源数,S=0表示无可用资源且无进程等待,S<0表示|S|个进程在等待队列中。
V操作的定义为S=S+1,仅当操作后S≤0时才会唤醒一个等待进程(因S≤0表明仍有进程等待)。设操作前信号量为S_old,操作后为S_new=S_old+1。因唤醒了进程,故S_new≤0,即S_old+1≤0,解得S_old≤-1,即S_old<0。
答案:C. <0
当信号量小于0时,其绝对值代表等待进程数。V操作使信号量加1后仍非正数,说明原信号量至少为-1(即<0),因此操作前必然存在等待进程,操作后需唤醒其中一个。