CH3 应用题参考答案 1、 有三个并发进程:R 负责从输入设备读入信息块,M 负责对信息块加工处理;P 负责打印输出信息块
今提供; l )一个缓冲区,可放置 K 个信息块; 2 )二个缓冲区,每个可放置 K 个信息块; 试用信号量和 P 、V 操作写出三个进程正确工作的流程
答: 1 ) var B : array [ 0 , k-1 ] of item ; sread : semaPhore : = k ; smanage : semaPhore : = 0 ; swrite : semaphore : = 0 ; rptr : integer : = O ; mptr : integer : = O ; wptr :integer : = 0 ; x : item cobegin process reader ; process manager ; process writer ; begin begin begin LI : read a message intox ; L2 : P ( smanage ) ; L3 : P ( swnte ) ; P ( sread ) ; x:=B[mptr]; x:=B[swrite]; B[rptr]:=x; mptr:=(mptr+1) mod k; wptr:=(wptr+1) mod k; Rptr:=(rptr+1) mod k; manage the message in x; V(sread); V(smanage); B[mptr]:=x; print the message in x; Goto L1; V(swrite); goto L3; End; goto L2; end; End; coend 2 ) var A , B :array [ 0 , k -l ] of item ; sPut1 :