注意:此页面搜索的是所有试题
(每小题2分,共16分)设有无穷多个信息,输入进程把信息逐个写入缓冲区,输出进程逐个从缓冲区中取出信息。设缓冲区是环形的,编号为0~n-1,in和out分别是输入进程和输出进程使用的指针,初值都是0。为使两类进程实行同步操作,设置三个信号量:两个计数信号量full和empty,一个互斥信号量mutex。full表示放有信息的缓冲区数,其初值为0。empty表示可供使用的缓冲区数,其初值为n。mutex互斥信号量,初值为1。 根据下面输入、输出进程的同步算法,填写相应的P、V操作。

输入进程Input:

while (TRUE) {

__(1)__;

_P(mutex)__;

信息送往buffer(in);

in=(in+1) mod n; /*以n为模*/

__(2)__;

__(3)__;

}

输出进程Output:

while (TRUE){

__(4)__;

__(5)__;

从buffer(out)中取出信息;

out=(out+1) mod n; /*以n为模*/

_V(mutex)_;

__(6)__;

}

参考答案