软考之路--从生活着手,看pv怎样操作

zhchoutai zhchoutai     2022-09-05     609

关键词:

       PV操作。是软考其中一个非常重要的考点,一听到这个名词,顿时赶脚高大上有么有,在软考的历年试题中,也不乏PV操作的身影,老师也对PV操作进行了一次讲课,那时年少。听得稀里糊涂,也不是非常理解,在小编的理解其中,PV操作与信号量的处理相关。P表示通过的意思,V表示释放的意思。做过几套软考试题,看过软考视频,对PV操作有了一点傻傻的理解,PV操作属于操作系统方面的知识,在前面的博文中,小编介绍过进程存储,这篇博文。小编主要和大家来学习一下PV操作的相关知识,小编会循着以下这张图的脉络,一一介绍,首先,我们来看一下总体的有关PV操作知识点的框架。

       技术分享

      接下来。小编就沿着上图的痕迹,对PV操作进行一一解剖,有不允许见的小伙伴欢迎讨论交流。

      概念

      同步

      关于同步,小编理解的意思是“协同合作。齐心协力”。换句话说就是我们的目标仅仅有一个。大家的目标都一致,就是在大家的努力下共同完毕某一件事情。看以下一张图:

       技术分享

       我们来简单分析一下这张图,A仓库有一些货物,然后我们须要把A仓库的货物搬运到B仓库,由搬运工甲和搬运工乙来完毕这个任务;那么他们的目标就仅仅有一个。就是把货物从A仓库搬到B仓库去,共同奔着这个方向去努力,这是一个典型的同步问题。


       相互排斥

        古语中有句话,能非常好的表达出相互排斥的概念--千军万马过独木桥。非常easy的一句话,把相互排斥的概念表达的淋漓尽致,就好比有一个大部队来到独木桥边,想要走过独木桥。首先要做的工作就是排好队。一个一个来。挨个走过独木桥。另一个非常好的样例能够说明相互排斥的概念,比方打印机,打印机这个工具就非常好的体现了相互排斥的概念,比方,前阵日子,大家自考。各种打印真题。打印知识点。假设你去打印的时候,已经有人正在使用打印机,那么你须要做的就是静静的等待,这也是生活中一个能非常好说明相互排斥概念的样例。在相互排斥中,还有两个重要的概念,临界资源和临界区,临界资源就是我们上文提到过的相互排斥,各个进程间须要相互排斥方式对其进行共享资源,如打印机。临界区就是进程訪问临界资源的那段代码。


        P?

V? PV?

        P操作:使S=S-1。若S>=0,则该进程继续运行,否则该进程排入等待队列。
        V操作:使S=S+1,若S>0,唤醒等待队列中的一个进程。
        PV操作:解决相互排斥和同步的问题。这样理解起来,非常费解。也不知道是怎么个意思。我们还是从生活着手,看看PV是怎样操作。

       

        生活中的PV操作

        生产者--消费者问题

        首先我们来看以下一张图

         技术分享

        这是一个著名的同步问题。尽管生产者进程和消费者进程都是异步方式执行的,但它们之间必须保持同步,即不同意消费者进程到一个空缓冲区去取产品。也不同意生产者进程向一个已装满产品且尚未被取走的缓冲区中投放产品。这是一个单缓冲区情况。那么这个单缓冲区的PV操作,应该是如何的呢?我们来看看:

       技术分享

      我们来分析一下这个流程,前提是S1初值为1,S2初值为0。我们须要明确P操作减1,V操作加1,然后这个分析就变得没有那么困难了,我们先对初值进行一下说明:

       a、我们把S1的初值设为1:是说明缓冲区另一个空间能够使用,对于生产者而言。每个缓冲区的一个空间就是一个资源,也就是说,一開始执行的时候,就同意生产者投放一个产品到缓冲区。

       b、然后投放到缓冲区之后,我们来看消费者进程。P(S2):首先我们要进程一个推断。推断缓冲区中是否有产品,对消费者而言,缓冲区中有产品,就代表有一个资源能够使用。可是最初状态那个缓冲区中是没有资源的。所以S2的初值应该是为0。我们刚才都提到了资源的问题,就是信号量的一个值应该是表示资源的数量,可是就消费者和生产者而言,对于他们的资源是不同的,概念是不同的,生产者:缓冲区有多少个空格,就有多少个资源。而对消费者来说。缓冲区有多少个满的格。就有多少个资源。是刚好是相反,所以当消费者从缓冲区取出一个产品之后。对于生产者而已。就多了一个资源。

       关于这个进程。我们能够这样来理解:
       1、生产者:P(S1),那么P(S1)。S1=S1-1。得到P(S1=0)这个进程还能进行,那么生产者把一个产品投放到缓冲区。


       2、V(S2)。S2=S2+1,S2初值为0。所以S2=S2+1>0,那么就激活了P(S2)。那么消费者就能取出一个产品。
       3、消费产品:消费产品之前。另一个V(S1),就激活了P(S1),让生产者继续投放产品到缓冲区。这是单缓冲区分析。
      
        我们接下来看一个相对来说,有点复杂一点点的--多缓冲区的PV操作,对照我们的单缓冲区的PV操作,我们还是来分析生产者和消费者的问题:
        技术分享

        相应的PV操作例如以下图

        技术分享

        有一点差别,就是要引用相互排斥的概念,由于缓冲区是一个临界资源。它始终仅仅能有一个进程对其进行操作。所以我们就能够用一个相互排斥信号量来完毕这一点,所以当某一个进程要使用到缓冲区之前。我们就进行下面推断,推断这个缓冲区如今是不是空暇呢?是不是有生产者或者消费者的进程在使用这个这个缓冲区呢?假设有,mute的初值为1,当有人使用这个缓冲区的时候,这个mute的值就由1变为0,这时,第二个进程向再来操作这个缓冲区,就不可能了,就会被堵塞。

        公交车司机与售票员的问题:

         技术分享

        我们来分析这个过程。我们把S1和S2的初值都设为0。我们来分析分析:
        1、P(S1):S1=S1-1=-1,那么司机进程就被暂停。等会售票员进程,售票员关车门。


        2、V(S1):S1=S1+1=0,激活了司机进程,那么司机就開始启动车辆、正常行驶、到站停车,当然售票员也 有可能同一时候在售票。
        3、P(S2):S2=S2-1,售票员在售票之后的进程就被暂停。等待司机进程。这样就避免了售票员售票之后就开车门了。

由于这是不同意的。
        4、V(S2):S2=S2+1,司机到站停车之后,就激活了售票员P(S2)的进程,那么售票员就进程 开车门、上下客的操作。那么这个进程就完毕了。

       小编寄语:该博文小编主要浅显的讲述了一下PV操作的有关知识,分别三个方面对PV操作进行相关阐述,首先是概念。包含同步和相互排斥的概念,其次是什么是PV操作。最后。从生活入手,解说了两个PV操作的样例,生产者消费者问题和公交车司机和售票员的问题。另一个样例就是上次米老师上课提到的12306售票系统和顾客之间的关系。也是PV操作的一个非常好的样例典型。

这些样例都是我们生活中实实在在存在的。理解起来比較easy。也比較easy接受,软考之路,未完待续......
















从存储角度看自动驾驶必经之路

当前,我们生活在一个数字时代,不断通过技术与其他人联系已经成为日常需求。生活中大家使用的机器也开始逐渐变得更智能、更方便,包括每天在路上行驶的车辆。随着车辆联网程度变得越来越高,汽车联网逐渐成为人们对... 查看详情

软考之路1目标

计算机技术与软件专业技术资格(水平)考试CVEQC初级:程序员考试要求:  (1)掌握数据及其转换、数据的机内表示、算术和逻辑运算,以及相关的应用数学基础知识;  (2)理解计算机的组成以及各主要部件的性能指... 查看详情

大佬勿看首次软考暂告一段落,记录一波备考经历,下次(不)再来!!(附pv操作和数据流图解析)

前言      5月29日,三舞订婚了,我的首次软考经历也结束了,这个日期,在心里越久就越觉得特别,总觉得需要点仪式感去纪念,于是有了这篇文章~此处回顾一下备考,希望能督促自己坚持学习(... 查看详情

软考网络工程师--操作系统

操作系统在整个网络工程师考试中所占的比例在1%至7%之间,为小于5分。主要考察知识点包括:1、进程基本概念               2、信号量与PV操作      &nb... 查看详情

从汉能薄膜发电纸产业之路,看科技如何引领生活

在双十一来临之际,购物发烧友开始列清单、刷手机、填购物篮。与此同时,热衷于外出的驴友们也在搜索轻小、便捷的移动电池,为下一次旅行做准备。在众多的移动电池中,薄膜太阳能折叠发电纸最受驴友喜爱。汉能为了实... 查看详情

软考之路——计算机组成原理之加密技术和认证技术

在软考的题目中总会出现一两道关于加密技术和认证技术的题目。比如:2012年11月的上午题的第(8)和第(9)题: 用户B收到用户A带数字签名的消息M,为了验证M的真实性,首先须要从CA获取用户A的数字验证书,并利用(8)验证该证书的真... 查看详情

java从入门到进阶之路(十八)

在之前的文章我们介绍了一下Java中的正则表达式,本章我们来看一下Java中的Object。在日常生活中,任何事物我们都可以看做是一个对象,在编程中是同样的道理,在Java编程中其实更突出,因为Java就是一门面向对象的编程语言... 查看详情

pv操作经典例题---三个进程之间的同步

...样一件事:一个输入B1,被操作之后,成为B2,将B2打印。怎样用PV操作来说这件事。那么新的问题来了:啥是个PV操作?  就拿这道题来解释PV操作吧,我想打印一个值,前提条件是这个值存在吧,如果不存在,那么打印这个动... 查看详情

软考系统架构设计师操作系统②进程管理

>>回到总目录<<文章目录什么是进程?进程的状态三态模型五态模型练习题进程的同步与互斥同步互斥临界资源临界区PV操作练习题前趋图练习题练习题练习题死锁银行家算法练习题什么是进程? 查看详情

软考高级

项目范围管理流程图  项目管理流程:  (1)启动阶段:督促项目管理组织开始着手项目下一阶段的工作,即收集需求。  (2)范围规划报告:写一份书面报告,作为未来项目决策的基础,即定义范围。  (3)范围界... 查看详情

[架构之路-122]-《软考-系统架构设计师》-操作系统-1-操作系统原理-进程管理

前言:操作系统的本质就是创建一个并发的应用程序执行的环境,使得各种应用程序可以动态、共享相同的计算机物理硬件资源,计算机的三大物理资源包括:CPU内存外设应用程序(管理应用程序):... 查看详情

[架构之路-114]-《软考-系统架构设计师》-软件架构设计-7-软件架构评估

前言第7节软件架构评估7.1什么是架构评估/为什么要软件架构评估在软硬件系统总体架构设计完成之后,为保证架构设计的合理性、完整性和针对性,从根本上保证系统质量,降低成本及投资风险,需要对总体架... 查看详情

[架构之路-5]:架构师-中国计算机技术职业资格(软考)考试是如何定义系统架构师?

目录第1章 中国计算机技术职业资格(软考)等级第2章考试要求与技能要求第3章关于题型与分值第4章教材内容第1章操作系统1第2章 数据库系统 30第3章数据通信与计算机网络107第4章系统性能评价133第5章开发方法149第6... 查看详情

读书笔记-《我的美国之路》

以看小说的感觉看完了这部自传,酣畅淋漓,非常励志!强烈推荐!科林鲍威尔出身平民黑人移民家庭,通过个人的天赋和努力,成为美国第一位黑人上将,第一位黑人参谋长联席会议主席,第一位黑人国务卿,是拥有崇高声望... 查看详情

[架构之路-125]-《软考-系统架构设计师》-操作系统-4-浅谈vxworks与linux操作系统的区别

相同点(1)都可以用于嵌入式操作系统(2)都提供多任务的执行环境(3)WindRiverSystem公司可以提供者两种操作系统的硬件定制化(BSP)2.不同点2.1内核结构不同vxworks是微内核,只提供基本的服务... 查看详情

我的软考之路——三大原则学会数据流图

    数据流图是软考其中比較重要的一部分考点。不仅上午的选择题会考,并且下午要考一个大题。所以对数据流图的学习不容忽视。    对于数据流图,我们不做过多具体的介绍,网上有非常多丰富... 查看详情

[架构之路-124]-《软考-系统架构设计师》-操作系统-3-操作系统原理-io设备微内核嵌入式系统

第11章操作系统第5节设备管理/文件管理:IO5.1文件管理5.2IO设备管理(内存与IO设备之间)数据传输控制是指如何在内存和IO硬件设备之间传输数据,即:设备何时空闲?设备何时完成数据的传输?SPOOLIN... 查看详情

软考中级-操作系统

1操作系统地位计算机系统由硬件和软件组成,未配置软件的称为裸机,但这会导致效率低下。操作系统是为弥补用户与硬件之间的鸿沟的一种系统软件,汇编、编译、解释、数据库管理系统等系统软件和其他应用软... 查看详情