书187.43
int s1=0,s2=0,s3=0;
mutex=1;
process input
begin
ron1(){
拿出一种原料
if(s1)
V(s1);
if(s3)
V(s3);
if(s2)
V(s2);
V(mutex);
}
zhu1(){
p(s3)
P(mutex);
}
zhu2(){
P(s1)
P(mutex);
}
zhu3(){
P(s2)
P(mutex);
}
end
2.IPO问题:有多个输入进程、多个处理进程和多个输出进程。输入进程把数据逐步输入到一个有M个单位缓冲区B1上,经处理进程处理之后放到有N个单位的缓冲区B2上,由输出进程进行输出。
2(1)输入、处理、输出三个进程。
约束:输入进程需要待处理进程将数据处理、输出完毕
输出进程需要等处理进程处理完才输出
int s1=0,s2=0,s3=0;
mutex=1;
process input
begin
r(){
while(true){
if(mutex==1){
V(s1);
p(mutex);
}
}
}
c()
{
while(true){
P(s1);
V(s2);
V(s1);
}
}
}
s(){
P(s2);
V(s3);
V(mutex);
}
原文:https://www.cnblogs.com/pigs29/p/10826959.html