//信号量 wait 操作 wait(semaphore *S) { S->value--; if(S->value < 0 ){ add this process to S->list; //移入等待队列 block( ); //阻塞进程 } } //信号量 signal 操作 signal(semaphore *S) { S->value++; if(S->value <= 0){ remove a process P from S->list; //从等待队列中删除 wakeup(P); //唤醒进程 } }这里-3即有3个等待的进程