进程同步与通信习题_第1页
进程同步与通信习题_第2页
进程同步与通信习题_第3页
进程同步与通信习题_第4页
进程同步与通信习题_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

进程同步习题,1、有3个进程PA,PB和PC合作解决文件打印问题:PA将文件记录从磁盘读入主存的缓冲区1,每执行一次读一个记录;PB将缓冲区1的内容复制到缓冲区2,每执行一次复制一个记录;PC将缓冲区2的内容打印出来,每执行一次打印一个记录。缓冲区的大小等于一个记录大小。请用P,V操作来保证文件的正确打印。,设置4个信号量:empty1,empty2,full1,full2.Empty1及Empty2分别表示缓冲区1及缓冲区2是否为空,初值为1。Full1,full2分别表示缓冲区1及缓冲区2是否有记录可供处理,其初值为0。,PC()While(1)P(full2);从缓冲区2取一个记录;V(empty2);打印记录;,PA()While(1)从磁盘读一个记录;P(empty1);将记录存入缓冲区1;V(full1);PB()While(1)P(full1);从缓冲区1中取出记录;v(empty1);P(empty2);将记录存入缓冲区2;V(full2);,Intempty1=1,empty2=1,full1=0,full2=0;main()CobeginPA();PB();PC();Coend,2、公共汽车上,司机和售票员的活动分别为:,司机的活动:启动车辆;正常行驶,到站停车,售票员的活动:关车门;售票;开车门;,例:司机P1售票员P2REPEATREPEAT启动关门正常运行售票到站停开门UNTILFALSEUNTILFALSE,司机启动车辆的动作必须与售票员关车门的动作取得同步,售票员开车门的动作也必须与司机停车取得同步。,解:设信号量S1:是否允许司机启动汽车,初值为0信号量S2:是否允许售票员开门,初值为0,Driver()While(1)P(s1);启动汽车正常行车;到站停车;V(S2);,Busman()While(1)关车门;V(S1);售票P(S2);开车门;上下乘客;,ints1=0;ints2=0;main()CobeginDriver();Busman();Coend,3、桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用P,V原语实现爸爸,儿子女儿三个进程的同步。,解:设三个信号量,S:表示盘子是否为空,初值为1So:表示盘中是否有桔子,初值为0Sa:表示盘中是否有苹果,初值为0;,ints=1;intsa=0;intso=0;main()Cobeginfather();son();daughter();Coend,father()While(1)P(S);将水果放入盘中;If(放入的是桔子)v(So);Elsev(Sa);,son()While(1)P(So)

温馨提示

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

最新文档

评论

0/150

提交评论