注意:此页面搜索的是所有试题
题目内容
(国家开放大学操作系统1)
(每小题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)__;
}
输入进程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)__;
}
参考答案