登录

设有无穷多个信息,输入进程把信息逐个写入缓冲区,输出进程逐个从缓冲区中取出信息。设缓冲区是环形的,编号为0~n-1,in和out分别是输入进程和输出进程使用的指针,初值都是0。为使两类进程实行同步操作,设置三个信号量:两个计数信号量full和empty,一个互斥信号量mutex。full表示放有信息的缓冲区数,其初值为0。empty表示可供使用的缓冲区数,其初值为n。mutex互斥信号量,初值为1。根据下面输入、输出进程的同步算法,填写相应的P、V操作。 输入进程Input: while (TRUE) { [1]; [2]; 信息送往buffer(in); in=(in+1) mod n; /*以n为模*/ [3]; [4]; } 输出进程Output: while (TRUE){ [5]; [6]; 从buffer(out)中取出信息; out=(out+1) mod n; /*以n为模*/ [7]; [8]; }

查看答案:0.2积分