课件期中测试思考题解答_第1页
课件期中测试思考题解答_第2页
课件期中测试思考题解答_第3页
课件期中测试思考题解答_第4页
课件期中测试思考题解答_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1习题

进程A1、A2,。。。An1通过m个缓冲区向进程B1、B2、。。。Bn2不断发送消息。发送和接收工作遵循下列规则:(1)每个发送进程一次发送一个消息,写入一个缓冲区,缓冲区大小等于消息长度(2)对每个消息,B1,B2,Bn2都须各接收一次,读入各自的数据区内(3)m个缓冲区都满时,发送进程等待,没有可读消息时,接收进程等待。试用P、V操作组织正确的发送和接收工作。2提示:每个缓冲区只要写一次但要读n2次,因此,可以看成n2组缓冲区,每个发送者要同时写n2个缓冲区,而每个接收者只要读它自己的缓冲区。Sin[n2]=mSout[n2]=0;3解先将问题简化:设缓冲区的大小为1有一个发送进程A1有二个接收进程B1、B2设有信号量Sin[1]、Sin[2]初值为1设有信号量Sout[1]、Sout[2]初值为04Bi:while(1){

P(Sout[i]);P(mutex);?

从缓冲区取数V(mutex);?V(Sin[i]);}A1:

while(1){

P(Sin[1]);

P(Sin[2]);

P(mutex);? 将数据放入缓冲区V(mutex);? V(Sout[1]);V(Sout[2]);

}5向目标前进一步设缓冲区的大小为m有一个发送进程A1有二个接收进程B1、B2设有信号量Sin[1]、Sin[2]初值为m设有信号量Sout[1]、Sout[2]初值为06Bi:while(1){

P(Sout[i]);

P(mutex);

从缓冲区取数

V(mutex);V(Sin[i]);};A1:

while(1){

P(Sin[1]);

P(Sin[2]);

P(mutex);

将数据放入缓冲区 V(mutex); V(Sout[1]);V(Sout[2]);

}7到达目标设缓冲区的大小为m有n1个发送进程A1….An1有n2个接收进程B1…Bn2设有n2个信号量Sin[n2]

初值均为m设有n2个信号量Sout[n2]初值均为08Bi:while(1){

P(Sout[i]);

P(mutex);

从缓冲区取数

V(mutex);V(Sin[i]);};Aj:while(1){for(i=1;i<=n2;i++)

P(Sin[i]);

P(mutex);

将数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论