下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章进程同步与通信6.有三个并发执行的进程 A、B和C, A负责输入信息到缓冲区,B负责加工输入到缓冲区中的数据,C负责将加工后的数据打印输出。在下列情况下:(1单缓冲区。(2)由N个缓冲区组成的缓冲池。分别写出三个进程的并发关系。答:(1)semaphore S1=1, S2=S3=0A:B:C:while(1) while(1) while(1) P(S1);P(S2);P(S3);输入信息到缓冲区;加工缓冲区中数据;输出缓冲区中数据;V(S2);V(S3);V(S1);(2) semaphore S仁N; semaphore S2=0,S3=0; semaphore mutex=1;
2、int i.,j,k;ITEM bufferN;ITEM data_i,data_o;A:B:C:while(1) while(1) while(1) P(S1);P(S2);P(S3);P(mutex);P(mutex);P(mutex);输入数据data_i;data_o= bufferk;bufferi=data_i;处理中bufferj的数据k=(k+1)%N;i=(i+1)%N;j=(j+1)%N;输出 data_o;V(mutex);V(mutex);V(mutex);V(S2);V(S3);V(S1);7三个并发执行的进程 A、B和C, A与B共享缓冲区M , B与C共享缓冲区N
3、,如图所示:假 如缓冲区的大小只能存放一个单位的数据,试写出A、B、C三个进程的同步关系。答:semaphore S1=M;S3=N;semaphore S2=0,S4=0; semaphore mutex=1; int i.,j,k,l;ITEM buffer1M;ITEM buffer2N;ITEM data_i,data_o;9设有两个优先级相同的进程P1 , P2如下,令信- 号量 S1、S2的初值为0,已知z=2 ,A:B:C:while (1) while (1) while (1) P(S1);P(S2);P(S4);P(mutex);P(mutex) ;P(mutex);输入数
4、据 data_i;data_o=buffer1j;data_o= bufferl;buffer1i=data-i;j=(j+1)%M;l=(l+1)%N;i=(i+1)%M;V(mutex);输出 data_o;V(mutex);V(S1);V(mutex);V(S2);P(S3)V(S3);P(mutex); buffer2k=data_o; k=(k+1)%N;V(mutex);V(S4)试 问P1、P2并发运行结束后x= ? y= ? z= ?进程 P1进程 P2y: =1 ; y:=y+2 ;V(S1);x:=1 ; x:=x+1 ; P(S1);z:=y+1 ;x:=x+y ;P(S
5、2);V(S2) ;z:=x+z ;y:=z+y ;解答:由题意可知执行顺序存在如下 5种情况:z:=y+1x:=x+yy:=z+yz:=x+zz:=y+1x:=x+yz:=x+zy:=z+yx:=x+yz:=y+1 z:=x+zy:=z+yx:=x+yz:=y+1 y:=z+yz:=x+zx:=x+yz:=x+z z:=y+1y:=z+y和的结果为:x=5,y=7,z=9;和结果为: X=5,y=12,z=9;的结果为: x=5,y=7,z=4;*10 有一个隧道,由于很窄,只能容纳一个方向的车辆通过。如果东西两方向的车辆都想 通过该隧道,并有下面的情况:(1)如东西两方向的车辆都想通过隧道
6、时,便形成了等待队列。 (2)若一个方向没有车辆,允许另一个方向的车辆通过。 (3)若双方都有车辆想通过,则先到达的哪个方向的车辆先通过。 试用 PV 操作描述东西两方向车辆的同步关系。解答:方法一: (用信号量)Semaphore eastmutex,westmutex,mutex=1;Int east,west=0;东方向车:Void eastcar()while(true) P(eastmutex);If(east=0)P(mutex);east+;V(eastmutex);Go through the tunnel;P(eastmutex);east-;If(east=0)V(mute
7、x);V(eastmutex);Leave;西方向车:Void westtcar()while(true) P(westmutex);If(west=0)P(mutex);west+;V(westmutex);Go through the tunnel;P(westmutex);west-;If(west=0)V(mutex);V(westmutex);Leave; 方法二:(用一般 “信号量集 ”) Semaphore eastmutex,westmutex=N; 东方向车:Void eastcar()swait(eastmutex,1,1; westmutex,N,0);Go throug
8、h the tunnel;Ssignal(eastmutex,1);西方向车:Void westcar()swait(westmutex,1,1; eastmutex,N,0);Go through the tunnel;Ssignal(westmutex,1); *13在读者、写者问题中,如果总有读者进程进行读操作,会造成写者进程永远都不能进 行写操作(读者优先) ,即所谓的写者饿死现象。给出读者、写者问题的另一个解决方案: 即保证当有一个写者进程想写时, 不允许读者进程再进入, 直到写者写完为止, 即写者优先。 解答:Semaphore Rmutex,Wmutex,mutex1=mutex2=1;Int Rcount,Wcount=0;、十一h<读者:Void reader()while(true) P(mutex1);V(mutex1);P(Rmutex);If(Rcount=0)P(Wmutex);Rcount+;V(Rmutex);reading;P(Rmutex);Rcount-;If(Rcount=0)V(Wmutex);V(Rmutex);Leave;Void writer()while(true) P(m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校庆2024元旦联欢晚会闭幕词(3篇)
- 北京市顺义区2023-2024学年高一上学期期末考试化学试题(含答案)
- 江苏省镇江市2023-2024学年四年级上学期语文期末试卷(含答案)
- 记忆绕口令地理学习更轻松
- 设备购买合同范本示范
- 诚信广告自律保证书
- 详勘地质项目投标
- 语文大专论述习作考核卷
- 语文课引发的大学教育反思
- 负责到底的爱情保证
- 山东省临沂市2024-2025学年高一上学期期中考试语文试卷(无答案)
- 职场培训课件教学课件
- 2024年新疆(兵团)公务员考试《行测》真题及答案解析
- 2024北京初三一模语文汇编:基础知识综合
- 2025届江苏省南通市海安中学物理高一上期末质量检测试题含解析
- 医疗设备安装与调试工程方案
- 税务会计岗位招聘面试题与参考回答(某世界500强集团)2024年
- 2024年中国反病毒邮件网关市场调查研究报告
- 汽车基础理论知识单选题100道及答案解析
- 福建省福州市鼓楼区福州一中2025届语文高三第一学期期末监测试题含解析
- 2023年学年上海外国语大学附属外国语学校东校教师招聘考试真题
评论
0/150
提交评论