有3个并发进程:R、E、P,R将键盘输入的一个整数读入缓冲区B1,E将B1中的数据取出进行处理,处理后存入缓冲区B2中。最后由P负责将B2中的数据打印输出。用PV操作写出管理3个进程的并发程序。(注:B1和B2均只能存放一个数据)

admin2017-10-26  30

问题 有3个并发进程:R、E、P,R将键盘输入的一个整数读入缓冲区B1,E将B1中的数据取出进行处理,处理后存入缓冲区B2中。最后由P负责将B2中的数据打印输出。用PV操作写出管理3个进程的并发程序。(注:B1和B2均只能存放一个数据)

选项

答案设4个信号量:S1表示能否将数据存入B1;S2表示B1中是否已存有数据可供处理;S3表示是否将处理过的数据存入B2;S4表示B2中是否已有数据可供打印。用PV操作管理3个并发进程如下: begin B1,B2:integer; S1,S2,S3,S4:semaphore; S1:=1; S2:=0; S3:=1; S4:=0; cobegin process R datal:integer; begin L1:reacl a data; P(S1); B1:=data1; V(S2); goto L1: end; process E data2:integer; begin L2:P(S2); take a data from B1: V(S1); process the data to data2; P(S3); B2:=data2; V(S4); goto L2; end; process P begin L3:P(S4); take a data from B2; V(S3): print the data; gato L3: end; coend; end;

解析
转载请注明原文地址:https://kaotiyun.com/show/Gekx777K
0

最新回复(0)