这里填写标题

  • 1. PV 操作与案例分析
    • 1.1. PV 操作的原则
    • 1.2. 案例分析
      • 1.2.1. 案例一
      • 1.2.2. 案例二
      • 1.2.3. 案例三

1. PV 操作与案例分析

PV 操作是一种实现进程互斥与同步的有效方法。PV 操作与信号量的处理相关, P 表示通过的意思, V 表示释放的意思。

PV 操作是典型的同步机制之一。用一个信号量与一个消息联系起来:

  • 当信号量的值为 0 时, 表示期望的消息尚未产生;
  • 当信号量的值非 0 时, 表示期望的消息已经存在。

用 PV 操作实现进程同步时, 调用 P 操作测试消息是否到达, 调用 V 操作发送消息。

1.1. PV 操作的原则

P 操作: 相当于请求资源、输入
V 操作: 相当于释放资源、输出

  • 在单一进程内部, 由 P 操作 —> V 操作

1、 P: 请求到资源 (相当于程序输入)
2、 执行…
3、 V: 释放资源 (相当于程序的输出)

  • 在两个进程之间, 由 V 操作 —> P 操作

1、 V: 一个进程释放了资源
2、 P: 另一个进程可以申请该资源

  • 起始进程: 只有 V 操作(输出), 没有 P 操作(输入)

相当于程序只出不进

  • 终止进程: 只有 P 操作(输入), 没有 V 操作(输出)

相当于程序只进不出

  • 前趋图中信号排序规则: 从左到右、从上到下 , 依次为 1、2、3…

1.2. 案例分析

1.2.1. 案例一

假设系统中有 n 个进程共享 3 台打印机, 任一进程在任一时刻最多只能使用 1 台 打印机。若用 PV 操作控制 n 个进程使用打印机, 则相应信号量 s 的取值范围为 3 ~ -(n-3); 若信号量 S 的值为 -3, 则系统中有 3 个进程等待使用打印机。

1.2.2. 案例二

1、案例



2、分析

1) 先标信号 S

按照从左到右、从上到下
如果两条线的起点相同, 就比较终点; 终点在上或在前的, 就排在前面

2) 依次分析每个进程

原则:

  • 初始进程, 只有 V, 没有 P
  • 终止进程, 只有 P, 没有 V
  • 进程内, 从 P 到 V
  • 进程间, 从 V 到 P
  • 一个进程有几个输入, 就有几个 P; 有几个输出, 就有几个 V
  • P1

初始进程: 只有 V
有两个输出 S1、S2, 所以 V 为: V(s1)、V(s2)

  • P2

一个输入 S1, 两个输出 S3、S4
所以 P 为: P(s1), V 为: V(s3)、V(s4)

  • P3

两个输入 S2、S3, 两个输出 S5、S6
所以 P 为: P(s2)、P(s3), V 为: V(s5)、V(s6)

  • P4

两个输入 S4、S5, 一个输出 S7
所以 P 为: P(s4)、P(s5), V 为: V(s7)

  • P5

一个输入 S6, 一个输出 S8
所以 P 为: P(s6), V 为: V(s8)

  • P6

终止进程, 只有 P, 没有 V
两个输入 S7、S8
所以 P 为: P(s7)、P(s8)

3)答案

1.2.3. 案例三

PV 操作与案例分析相关推荐

  1. 处理效应模型stata实例_【更新通知】手把手教你Stata软件操作与案例分析更新,速来!...

    继3大政策效应评价方法.面板微观计量模型.空间计量模型.应用面板数据模型四大主题套餐后,手把手教你Stata系列课程推出多期DID.平行趋势检验系列专题. 该专题包含多期DID及平行趋势检验:双重差分 ...

  2. SQL的事务回滚操作带案例分析

    SET XACT_ABORT on  BEGIN TRAN  INSERT INTO [PDA_Action] VALUES ('採购入库1')  INSERT INTO [PDA_Action] V ...

  3. mysql left join 索引失效_MySQL索引列上做操作导致索引失效案例分析

    索引列上做操作导致索引失效 通常我们认为只要建立索引就可以万事大吉,以为只要建立就一定会使用到,可其实在索引列上的计算.函数.类型转换都可能导致索引失效,所以我们不仅要会创建索引,更重要的是如何正确的 ...

  4. 案例分析 | 由Decimal操作计算引发的Spark数据丢失问题

    转载自  案例分析 | 由Decimal操作计算引发的Spark数据丢失问题 供稿 | Hadoop Team 编辑 | 顾欣怡 本文3058字,预计阅读时间10分钟 导读 eBay的Hadoop集群 ...

  5. 《移动App测试的22条军规》—App测试综合案例分析23.4节测试微信App的手势操作...

    本节书摘来自异步社区<移动App测试的22条军规>一书中的App测试综合案例分析,第23.4节测试微信App的手势操作,作者黄勇,更多章节内容可以访问云栖社区"异步社区" ...

  6. pandas 实例操作:美国人口案例分析

    pandas 案例分析:美国人口案例分析 ''' 需求:导入文件,查看原始数据将人口数据和各州简称数据进行合并将合并的数据中重复的abbreviation列进行删除查看存在缺失数据的列找到有哪些sta ...

  7. 模板方法模式详解附有代码案例分析(包含模板方法模式重构JDBC操作业务代码示例)

    模板方法模式 一.模板方法模式的概念和角色 (一).模板方法模式的概念 (二).模板方法模式的角色 二.模板方法模式的应用场景 三. 模板方法模式的代码示例 四.模板方法模式重构JDBC操作业务 五. ...

  8. 宿舍管理系统项目管理师_2020下半年信息系统项目管理师真题——案例分析(带解析)...

    2020下半年信息系统项目管理师真题--案例分析(带解析~强哥版) 案例分析这次继续是计算题+分析题的分布,但这个题由于理解上有歧义,所以也是大家经常争论的一个题,但无论第一列还是第二列对考分影响不会 ...

  9. 《深入理解JVM.2nd》笔记(五):调优案例分析与实战

    文章目录 概念 案例分析 高性能硬件上的程序部署策略 情景再现1 问题分析1 关于Full GC 使用64位JDK来管理大内存可能遇到问题 建立逻辑集群 使用逻辑集群可能遇到的问题 最后解决方案 集群 ...

最新文章

  1. 云效平台:企业级互联网架构下的持续集成与持续交付实践
  2. Javaweb监听器(2)
  3. HDU - Dogs' Candies
  4. 24.内存操作Copy-Move-Clone.rs
  5. Javascript动态执行问题浅析
  6. mfc控件位置随对话框窗口移动
  7. Swift与Objective-C混编时,我们是如何将编译时间优化了35%?
  8. 武侠人士的10大绝招
  9. Android TextView 跑马灯滚动效果
  10. 【图像加密】基于matlab Logistic混沌+Arnold置乱图像加密解密【含Matlab源码 1281期】
  11. 算法:分离链表为两部分,小于某个值都在左边,大于等于某个值在右边 Partition List
  12. web打印POS小票机代码
  13. ESP8266-Arduino编程实例-MLX90393磁场传感器驱动
  14. 元学习入门详解(MAML算法及Reptile算法复现)
  15. 内网建站 NAT穿透 局域网穿透
  16. 三校生高考计算机基础知识,计算机基础知识题(单选题)(三校生历年高考真题归纳)...
  17. 2021快递物流装备技术暨供应链博览会|冷链运输展|智能仓储运输展
  18. 批量修改文件夹或文件名称
  19. 新研究评估Masimo SedLine(R)脑功能监护仪能否预测心跳骤停后ICU患者的神经系统转归和长期生存
  20. 【消息】“莓果儿”QQ群

热门文章

  1. Qt中添加资源文件及资源文件的使用
  2. Qt 版Word多文档编辑与处理(完整版)
  3. 上周技术关注:疯狂的社会性应用开发平台-NING
  4. 背包问题不同要求下的初始化
  5. LTE 终端如何申请 RB 资源以及现实面临的问题
  6. 主成分分析(PCA)原理及R语言实现及分析实例
  7. 数据库迁移 | DBMotion v23.04 支持异地多活
  8. leetcode 台阶_leetcode-爬楼梯(动态规划)
  9. 关于SEO与搜索引擎排名现状分析与SEO去向
  10. 【CSPJ】CSPJ小学组