




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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-2025学年初三年级第一次模拟考试(二)数学试题含解析
- 江苏省四校联考2025届高三第二学期月考(三)英语试题含解析
- 家具定制交易合同
- 版个人房屋建设承包协议案例
- 铝门采购合同
- 2《让家更美好》表格式公开课一等奖创新教学设计 统编版七年级上册道德与法治
- 建筑项目劳动力计划和主要设备供应计划
- 人教部编版二年级上册课文4口语交际:商量教案设计
- 经管营销多维-广东溢达-问题分析与解决培训核心片段记录-1021-22
- 八年级数学下册 第20章 数据的初步分析20.2 数据的集中趋势与离散程度 1数据的集中趋势第2课时 中位数与众数教学设计 (新版)沪科版
- 科学知识点(知识清单)五年级上册科学粤教版
- 设备维修规程
- 西川煤矿整合区矿山地质环境保护与土地复垦方案
- Unit 6 Lesson 1 A Medical Pioneer教学设计 高中英语北师大版(2019)必修第二册
- 英语答题卡2023年全国小学生英语能力测评(NEPTP)低年级组
- 国家开放大学《哲学基础》形考任务1-3参考答案
- 输电线路外力破坏危害及特点
- 医院工作中常见的法律风险和对策专家讲座
- (完整word版)扣字词汇124
- 升压站建筑工程施工作业指导书
- GB/T 24825-2009LED模块用直流或交流电子控制装置性能要求
评论
0/150
提交评论