【正确答案】(1)A和B两个进程的相互制约关系是既有互斥又有同步:对缓冲区的访问必须互斥,并且当缓冲区满时,A进程不可以写,必须等待;当缓冲区空时,B进程不可以读,必须等待。 (2)用P、V操作表示A、B进程的同步算法如下: BEGIN Buffer: ARRAY [0..N-1] of integer; m, out: Integer; S0,S1,S2: Semaphore; S0:=1; S1"=0; S2:=N; in:=out:=0; Cobegin Process PROCEDURE A; BEGIN L1: 生产数据m; P(S2); //等待可用的缓冲区空间 P(S0); //保护对in、out的操作 Buffer(in):=m; in:=(in+1) MOD N; V(S1); //有新数据,唤醒消费者进程 V(S0); Goto L1 END Process PROCEDURE B; BEGIN L2: P(S1); //等待新数据 P(S0); //保护对in、out的操作 m"=burfer(out); out:=(out+1) MOD N; V(S2); //增加可用空间 V(S0); 消费m; goto L2 END Coend END