




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/IEC 23090-26:2025 EN Information technology - Coded representation of immersive media - Part 26: Conformance and reference software for carriage of geometry-based point
- 2025至2030中国白色水泥行业发展分析及竞争格局与发展趋势预测报告
- 2025至2030中国男士帆布鞋行业供需趋势及投资风险报告
- 2025至2030中国电商物流行业产业运行态势及投资规划深度研究报告
- 2025至2030中国特医食品行业发展分析及前景趋势与投资报告
- 培训课件软件
- 智慧城市基础设施建设中的通信电缆技术创新
- 幼儿园新教师健康教育培训
- 心理辅导在学生学习中的重要性
- 从学生到职业领袖的教育之路
- 2025年四川广安爱众股份有限公司招聘笔试参考题库含答案解析
- 2024起重吊装及起重机械安装拆卸工程监理作业指引
- 威胁情报收集与整合-洞察分析
- 期末教师会议校长精彩讲话:最后讲了存在的问题
- 知名连锁汉堡店食安QSC稽核表
- 摄影设备采购合同范例
- DB41T 1812-2019 苹果简约栽培技术规程
- 【《三只松鼠公司员工激励现状调查及优化建议(附问卷)14000字》(论文)】
- 护理不良事件登记本及护理不良事件报告新规制度
- 农业土壤检测技术行业发展前景及投资风险预测分析报告
- 广东省深圳市罗湖区2023-2024学年二年级下学期期末考试数学试题
评论
0/150
提交评论