用PV操作实现进程同步的示例_第1页
用PV操作实现进程同步的示例_第2页
用PV操作实现进程同步的示例_第3页
用PV操作实现进程同步的示例_第4页
用PV操作实现进程同步的示例_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

用PV操作实现进程同步的示例 2 示例1 设有n个整数环形缓冲区和一个无穷整数序列 进程A逐个地把整数写入环形缓冲区 进程B则逐个地把缓冲区中的整数读出 请回答 1 叙述A B进程间的具体制约关系 2 若信号量S1的初值为0 信号量S2的值是n 1 则下图用PV操作描述的算法有何错误 V S1 进程A 一个整数写入缓冲区 P S2 P S1 进程B 从缓冲区中取出一个整数 V S2 3 解答 1 进程A和进程B是合作进程 必须同步 进程A应该超前进程B 但不能超前进程Bn个缓冲单元 进程B不能超前进程A 2 进程A中V S1 操作放在 整数写入缓冲区 之前有逻辑错 因为可能进程A执行V S1 后 在 整数写入缓冲区 之前 进程A被中断而调度进程B执行 进程B将通过P S1 从而从缓冲区中读取尚未写入的整数 造成错误 4 P S2 进程A 一个整数写入缓冲区 V S1 P S1 进程B 从缓冲区中取出一个整数 V S2 正确解决方法 设置同步信号量S1 表示开始时缓冲区中没有数据可供进程B读的整数 初值为0 设置同步信号量S2 表示开始时缓冲区中有n个空位置可供进程A送n个整数 初值为n 5 示例2 生产围棋的工人不小心把相等数量的黑子和白子混装在一个箱子里 现要用自动分拣系统把黑子和白子分开 该系统由两个并发执行的进程组成 系统功能如下 1 进程A专门拣黑子 进程B专门拣白子 2 每个进程每次只拣一个子 当一个进程在拣子时不允许另一个进程去拣子 3 当一个进程拣了一个子 黑子或白子 以后 必让另一个进程拣一个子 白子或黑子 用PV操作管理这两个并发进程 使其能正确实现上述功能 6 1 应定义的信号量及初值 2 在下列的程序中填上适当的P V操作 以保证它们能正确并发工作 ProcessAbeginL1 拣黑子 gotoL1 end V S2 ProcessBbeginL2 拣白子 gotoL2 end 信号量S1 允许进程A拣黑子 S2 允许进程B拣白子 初值为1 0 P S1 P S2 V S1 7 示例3 一条小河上有一座独木桥 规定每次只允许一个人过桥 现河东 河西都有人要过桥 如果把每个过桥者都看做一个进程 为保证安全 请用PV操作管理这两个并发进程 使其能正确实现上述功能 8 1 应定义的信号量及初值 2 在下列的程序中填上适当的P V操作 以保证它们能正确并发工作 Process E W i i 1 2 beginL1 过桥 gotoL1 end V S Process W E i i 1 2 beginL2 过桥 gotoL2 end 信号量S 允许任一方向的人过桥 初值为1 P S P S V S 9 示例4 假定有3个进程R W1 W2共享一个缓冲器B B中每次只能存放一个整数 进程R每次启动输入设备读一个整数且把它存放到缓冲器B中 若存放到缓冲器B中的是奇数 则由进程W1将其取出打印 否则 由进程W2将其取出打印 规定进程R存入缓冲器B的数 由进程W1和W2正确无误地打印出来 即要求打印的与存入的完全一致 要求用PV操作管理这3个并发进程 使它们能正确同步工作 10 解答 设3个同步信号量 empy是进程R的私有信号量 初值为1 表示开始时进程R可向缓冲器B中送一整数 SW1是进程W1的私有信号量 初值为0 表示开始时缓冲器B中无奇数可供进程W1取 SW2是进程W2的私有信号量 初值为0 表示开始时缓冲器B中无偶数可供进程W2取 3个进程的同步并发程序如下 structsemaphoreempty SW1 SW2 1 0 0 intB cobegin 11 voidPROCESSR void intx while TRUE 从输入设备上读一个整数到x P empty B x if x 2 1 V SW1 elseV SW2 12 voidPROCESSSW1 void inty while TRUE P

温馨提示

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

评论

0/150

提交评论