40. 假定有二三个进程P1、P2、P3共享一个缓冲器A,而A中每次只能存放一个数。当缓冲器中无数时,进程P1可将从输入设备上读入的数存放到缓冲器A中。若存放到缓冲器中的是奇数,则允许进程P2将其取出打印;若存放到缓冲器中的是偶数,则允许进程P2将其取出打印。同时规定:进程P1必须等缓冲器中的数被取出打印后才能再存放一个数;进程P1或P2对每次存人缓冲器中的数只能打印一次;P1和P2都不能从空的缓冲器中取数。
试填空使下列程序完整。
begin
B:integer:
S,SO,SE:semaphore;
S:=1;SO:=0;SE:=0;
cobegin
process P1
x:integer:
begin
L1:从输入设备读一个数;
x:=读入的数;
P(s);
B:=x:
if B=奇数then
(1)__________
else
(2)__________
goto L1
end;
process P1
y:integer;
begin
L2:__________(3)
y:=B;
(4)__________
打印y中的数;
goto L2
end;
process P2
Z:integer;
begin
L3:__________(5)
z:=B:
(6)__________
打印z中的数;
goto L3;
end;
coend;
end;
订单号:
遇到问题请联系在线客服
订单号:
遇到问题请联系在线客服