首页 > 其他 > 详细

用信号量及其PV操作处理实际问题

时间:2019-05-09 20:54:02      阅读:118      评论:0      收藏:0      [点我收藏+]

书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上,由输出进程进行输出。

  1. 这个问题有哪些进程?进程之间有什么样的制约关系?
  2. 用信号量及PV操作写出这些进程之间的同步算法。

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);
}

 

用信号量及其PV操作处理实际问题

原文:https://www.cnblogs.com/pigs29/p/10826959.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!