下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年合肥工业大学招标与采购管理中心专业技术人员招聘考试笔试备考题库及答案解析
- 2025福建龙岩市人力资源服务有限公司招聘就业见习人员3人备考考试题库及答案解析
- 2025浙江嘉兴市海宁市中心医院招聘2人考试备考题库及答案解析
- 深度解析(2026)《GBT 25915.10-2021洁净室及相关受控环境 第10部分:按化学物浓度划分表面洁净度等级》
- 2025云南磨憨站城城市开发有限公司招聘综合行政办公人员(1人)参考考试题库及答案解析
- 2025宜春市人力资源服务有限责任公司招聘1人(宜春海关)模拟笔试试题及答案解析
- “青苗筑基 浙里建证”浙江省建设投资集团2026届管培生招聘30人参考笔试题库附答案解析
- 2025年河北石家庄财经职业学院招聘17人备考笔试试题及答案解析
- 深度解析(2026)《GBT 25636-2010机床数控系统 用户服务指南》(2026年)深度解析
- 2025中国黄金集团香港有限公司社会招聘备考考试试题及答案解析
- T/CNCA 054-2023管道输煤工程设计规范
- 工程招投标与监理实务整体介绍吴莉四川交通04课件
- 2025+CSCO宫颈癌诊疗指南解读
- DG-TJ08-2207-2024城市供水管网泵站远程监控系统技术标准
- 机器学习与随机微分方程的深度集成方法-全面剖析
- 《TSGD7003-2022压力管道定期检验规则-长输管道》
- GB/T 45355-2025无压埋地排污、排水用聚乙烯(PE)管道系统
- 2025年全国硕士研究生入学统一考试 (数学二) 真题及解析
- 企业管理者的领导力培训
- There+be句型练习题及答案
- 《阻燃腈纶的研究与应用》课件
评论
0/150
提交评论