参考答案:(1) 所有信号量由一个叫同步的进程来完成,对应每个信号量设置一个计数器(记录信号量的值)和一个等待进程链表。
(2) P、V操作通过调用P、V过程来完成。P和V过程将信号量s和操作作为消息发给同步进程,然后等待同步进程的回答。
(3) 同步进程接收到消息后,看所要求的操作能否完成。P操作当S的值为0时,同步进程把调用者推入队列,不发回消息,调用者处于等待状态;V操作总能完成,所以发回一空消息给调用者,将其解冻,同时检查S的值是否为1和相应等待队列是否为空。若S为1,且队列不空,则从队列中移出一个进程,向它发送一个空消息,将它解冻。
我来回答:
最新试题