信号量及PV操作实例_第1页
信号量及PV操作实例_第2页
信号量及PV操作实例_第3页
信号量及PV操作实例_第4页
全文预览已结束

下载本文档

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

文档简介

信号量及信号量及 P V 操作练习操作练习 进程互斥实例 进程互斥实例 某小型超级市场 可容纳 50 人同时购物 入口处有篮子 每个购物者可 拿一只篮子入内购物 出口入结账 并归还篮子 出 入口禁止多人同时通过 试用信号 量和 P V 操作写出购物物者的同步算法 考虑 1 出 入口合一 2 出 入口分开 所用信号量设置如下 互斥信号量 S 初值为 50 用以保证最多可以有 50 个购物者同时进入超市 互斥信号量 mutex1 mutex2 初值为 1 用以保证同时只能有一个购物者进程进入出 入口拿起篮子或者结帐后放下篮子 用信号量机制给出的每个购物者购物过程的算法描述如下 购物者进程 P S P mutex1 从入口处进超市 并取一只篮子 V mutex1 进超市内选购商品 P mutex2 到出口结帐 并归还篮子 V mutex2 从出口离开超市 V S 生产者消费者问题实例 生产者消费者问题实例 桌上有个只能盛得下一个水果的空盘子 爸爸可向盘中放苹果 和桔子 儿子专等吃盘中的桔子 女儿专等吃盘中的苹果 规定 当盘子空时 一次只能放入一个水果供者取用 要求 试用信号量和 P V 操作实现爸爸 儿子和女如鱼得水这三个循环进程之间的同步 一 一 爸爸进程的同步信号量 empty 初值为 1 表示盘子是空的 即儿子或女儿已把盘 中的水果取走 儿子进程的同步信号量 orange 初值为 0 表示爸爸尚未把桔子放入盘中 女儿进程的同步信号量 apple 初值为 0 表示爸爸尚未把苹果放入盘中 爸爸进程 P 儿子进程 C1 女儿进程 C2 P empty P orange P apple 将水果放入盘中 从盘中取出桔子 从盘中取出苹果 若放入的是桔子 V empty V empty 则 V orange 吃桔子 吃苹果 否则 V apple 二 二 Semaphore S 1 S1 S2 0 void father while 1 准备苹果准备苹果 wait S 将苹果放在盘子内 将苹果放在盘子内 signal S1 void mother while 1 准备橘子准备橘子 wait S 将橘子放在盘子内 将橘子放在盘子内 signal S2 void daughter while 1 wait Sl 从盘子里拿走苹果 从盘子里拿走苹果 signal S 吃苹果吃苹果 void son while 1 wait S2 从盘子里拿走橘子 从盘子里拿走橘子 signal S 吃橘子吃橘子 main cobegin father mother daughter son 读者写者问题实例 读者写者问题实例 设 A B 两点之间是一段东西向的单行车道 现在要设计一个 AB 路段自动管理系统 管理规则如下 当 AB 间有车辆在行驶时同方向的车可以驶入 AB 段 但另一方向的车必须在 AB 段外等待 当 AB 段之间无车辆行驶时 到达 AB 段的任一方 向的车都可以进入 AB 段 但不能从两个方向同时驶入 即可能有一个方向的车驶入 当 某方向在 AB 段行驶的车辆驶出了 AB 段且暂无车辆进入 AB 段时 应让另一方向等待的 车辆驶入 AB 段行驶 试用信号量和 P V 操作管理 AB 路段车辆的行驶 解析 读者 写着问题的变形 我们设置 3 个信号量 S1 S2 和 Sab 分别用于从 a 点进入 的车互斥访问共享变量 ab 用于记录当前 ab 段上由 a 点进入的车辆的数量 从 b 点进入 的车互斥访问共享变量 ba 用于记录当前 ab 段上由 b 点进入的车辆的数量 和 a b 点的 车辆互斥进入 ab 段 3 个信号量的初值分别为 1 1 和 1 两个共享变量 ab 和 ba 的初值分 别为 0 0 Semaphore S1 1 S2 1 Sab 1 int ab ba 0 void Pab while 1 wait S1 if ab 0 wait Sab ab ab 1 signal S1 车辆从车辆从 a 点驶向点驶向 b 点点 wait S1 ab ab 1 if ab 0 signal Sab signal S1 void Pba while 1 wait S2 if ba 0 wait Sab ba ba 1 si

温馨提示

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

评论

0/150

提交评论