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

PV操作是典型的同步机制之一。用一个信号量与一个消息联系起来,当信号量的值为0时,表示期望的消息尚未产生;当信号量的值非0时,表示期望的消息已经存在。用PV操作实现进程同步时,调用P操作测试消息是否到达,调用V操作发送消息。

信号量

信号量的概念和PV操作是荷兰科学家E.W.Dijkstra提出来的。信号是铁路交通管理中的一种常用设备,交通管理人员利用信号颜色的变化来实现交通管理。在操作系统中,信号量S是一整数。S大于或等于零,代表可供并发进程使用的资源实体数;在S小于零时,|S|表示正在等待使用资源实体的进程数。 建立一个信号量必须说明此信号量所代表的意义并且赋初值。除赋初值外,信号量仅能通过PV操作来访问。

信号量按其用途可分为两种。
①公用信号量。联系一组并发进程,相关的进程均可在此信号量上执行P操作和V操作,初值常常为1,用于实现进程互斥。
②私有信号量。联系一组并发进程,仅允许拥有此信号量的进程执行P操作,而其他相关进程可在其上施行V操作。初值常常为0或正整数,多用于实现进程同步。

PV操作是由两个操作,即P操作和V操作组成的。P操作和V操作是两个在信号量上进行操作的过程,假定用S表示信号量,则把这两个过程记作P(S)和V(S)。

原理

用PV操作来管理共享资源时,首先要确保PV操作自身执行的正确性。由于P(S)和V(S)都是在同一个信号量S上操作,为了使得它们在执行时不发生因交叉访问信号量S而可能出现的错误,约定P(S)和V(S)必须是两个不可被中断的过程,即让它们在屏蔽中断下执行。把不可被中断的过程称为原语。于是,P操作和V操作实际上应该是P操作原语和V操作原语。

P操作的主要动作是:
①S减1;
②若S减1后仍大于或等于0,则进程继续执行;
③若S减1后小于0,则该进程被阻塞后放入等待该信号量的等待队列中,然后转进程调度。

V操作的主要动作是:
①S加1;
②若相加后结果大于0,则进程继续执行;
③若相加后结果小于或等于0,则从该信号的等待队列中 释放一个 等待进程,然后再返回原进程继续执行或转进程调度。

PV操作对于每一个进程来说,都只能进行一次,而且必须成对使用。在PV原语执行期间不允许有中断发生。原语不能被中断执行,因为原语对变量的操作过程如果被打断,可能会去运行另一个对同一变量的操作过程,从而出现临界段问题。如果能够找到一种解决临界段问题的元方法,就可以实现对共享变量操作的原子性。

其余

见参考

参考文章:PV操作

【中级软考】PV操作是什么?(passeren【通过、申请资源、减量】、vrijgeven【释放、释放资源、增量】【荷兰文】)(用于进程间同步)相关推荐

  1. 计算机软考网络中级题目,计算机软考中级软考网络工程师上午试题答题技巧

    原标题:计算机软考中级软考网络工程师上午试题答题技巧 计算机软考中级网络工程师考试的内容有以下几点:下面盛泰鼎盛小编就给大家分下下考试中答题应对技巧​.​ 科目包括: 1. 计算机与网络知识,考试时间 ...

  2. 【中级软考—软件设计师】2操作系统2.3进程调度【】:2.3.1考点一:PV操作的概念

    考察: 掌握PV操作的基本概念 同步互斥模型 临界资源 了解信号量与PV操作的分析 了解前驱图与PV操作的结合 考点分析 进程调度 考点一:PV操作的概念 进程管理--进程的同步与互斥 临界资源:比如 ...

  3. 【中级软考—软件设计师】2操作系统2.3进程调度【****】:2.3.3考点三:前趋图与PV操作

    考察: 掌握解题技巧. 根据前趋图来填写程序执行过程中缺失的P,V操作. 如果存在信号量区分的话,我们要根据已有的信号量,来判断一些信号量的位置,从而找到正确的选项. 进程调度 考点三:前趋图与PV操 ...

  4. 【中级软考】什么是McCabe测量法(McCabe复杂性度量、环路度量。计算有向弧数、结点数、强连通分量个数)

    McCabe度量法是由托马斯·麦克凯提出的一种基于程序控制流的复杂性度量方法.McCabe复杂性度量又称环路度量.它认为程序的复杂性很大程度上取决于程序图的复杂性.单一的顺序结构最为简单,循环和选择所 ...

  5. 中级软考有没有必要考?

    最近有 训练营 的同学来问我软考应该如何准备,毕竟两个科目还是花了一百多报考的,不好好准备就对不起这些钱了,也有问我要不要去报考软考的,因为班级里好多人都报了,问我软考这玩意可以给简历加分吗? 今天, ...

  6. 【中级软考—软件设计师】2操作系统2.7磁盘管理【**】:2.7.1磁盘管理01

    考点: 存储时间计算 双,单缓冲区的区别处理 优化存储的形式[了解] 磁盘调度算法的掌握 磁盘管理01 软考中当存储来处理 存储管理--磁盘管理 坑坑洼洼的磁道记录了一些信息 从外向内磁道编号递增 磁 ...

  7. 想考中级软考,一般需要多少复习时间?

    每个人的基础不同,接受能力也不同,这一篇是针对软考小白和基础不太好的考友,建议至少准备3个月是最好的,当然不包括有些大佬们啦,估计一个月两个月的时间就可以了,如果没有基础,没有接触过软考这一块的,至少 ...

  8. 中级软考-软件设计师(二)

    操作系统 1.单缓冲区和双缓冲区 单缓冲区的时间花费= (读入+送至+处理)  +  (读入+送至)*(盘块数-1 ) 双缓冲区的时间花费= (读入+送至+处理)  +  读入*(盘块数-1) 2.P ...

  9. 【中级软考—软件设计师】2操作系统2.2进程的概念【三态模型的变化】:2.2.2进程的状态

    考察: 掌握三态模型状态变迁,相应的条件位置 掌握五态模型状态变迁,相应的条件位置[软考考的是有挂起的五态] 进程的概念 考点二:线程的状态 有多种模型,我们掌握两种 三态模型的变化 等待,某个事件, ...

最新文章

  1. 大战即将来临,柯洁将于5月与AlphaGo正式对决
  2. NodeJS安全设计:好吃的草莓味糖果,只给好朋友小红
  3. 一张图系列——为什么在DllMain里面创建了线程并Wait会卡死
  4. 你还在从零搭建 Java 项目 ?10000 字总结~
  5. 数据分析的必备材料:学完可以解决90%以上的数据分析问题
  6. linux内核模块是什么,Linux内核模块介绍,使用Linux模块的优点
  7. 百度AI快车道深圳专场,揭秘CV目标检测核心技术
  8. python安装教程-01-Python安装教程与特色介绍-小白python入门基础
  9. javascript中的计时器
  10. 第四季-专题19-I2C驱动程序设计
  11. Flink流式计算在节省资源方面的简单分析
  12. VMware Workstation 激活密码
  13. Linux大批量文件rm命令无效
  14. Spring Security源码解析(一)
  15. hook declined to update refs/heads/dev
  16. 使用excel校验身份证号码是否正确
  17. 学习Matlab第三天——画3D图
  18. “你给查查本月及下月入司一年+的员工”
  19. 2011移动开发者大会后记
  20. 计算机被格式化怎么找回资料,电脑分区文件被格式化误删了怎么恢复

热门文章

  1. 【实用】ALV 清单右击隐藏列失效的处理
  2. 采购订单审批/取消审批程序(BAPI_PO_RESET_RELEASE、BAPI_PO_RELEASE)
  3. LSMW批处理使用方法(12)_步骤16、17
  4. 49、Power Query-合并查询温故知新
  5. 有关SAP中的批次管理
  6. 中国三大轴承厂是 哪三家?
  7. ATP检查的一些TIPS
  8. sap-生产订单的成本理解
  9. ABAP常用字符串操作收集整理
  10. 冰墩墩+周杰伦也救不了NFT