软测试综述——PV操作

软测试综述——PV操作

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。



   

    在操作系统中,进程之间常常会存在相互排斥(都须要共享独占性资源时)和同步(完毕异步的两个进程的协作)两种关系。而信号量和PV操作完美有效的处理了这两种情况。

 

    相互排斥:就好比过独木桥,一次仅仅能运行一个进程。

    同步:好比一个人骑车一个人步行,两方协作完毕一件事情,速度快的每过一段时间就停下来等等速度慢的



    信号量是一种特殊的变量。表现形式是一个整型S和一个队列,依据控制对象的不同被赋予不同的值。分为下面两类:

    1,公用信号量。实现进程间的相互排斥,初值为1或资源的数目,

    2,私用信号量。实现进程间的同步,初值为0或某个正整数。

 

        S的物理意义:S>=0表示某资源的可用数。若S<0,则其绝对值表示堵塞队列中等待该资源的进程数。

 

         P操作:也称为down()wait()操作,使S=S-1。若S<0,进程暂停运行。放入信号量的等待队列。表示申请一个资源。

 

        V操作:也称为up()signal()操作。使S=S+1,S<=0,唤醒等待队列中的一个进程。表示释放一个资源。

 

利用PV操作实现进程的相互排斥


    令信号量S的初值为1,当进入临界区时运行P操作,退出临界区时运行V操作。这样,利用PV操作实现进程相互排斥的代码例如以下:

P(S)

   临界区

V(S)

 

利用PV操作实现进程的同步


    令信号量S的初值为0。进程A在进程B到达L2曾经。不应前进到超过点L1

             进程A                       进程B

                                       

L1:P(S)                       L2: V(S)

                                   


    当进程A先运行到L1时,运行完P操作后,信号量S=S-1<0,停止运行。直到进程B运行到L2时,信号量S=S+1=1。唤醒进程A继续运行。

达到了同步的目的。

 



最后通过一个实例分析来巩固一下


    比如。某仓库有一名保管员。该仓库可存放n箱零件。

现有m名工人。仅仅要仓库空暇。工人就可以将生产好的零件放入仓库。并由保管员登记入库数量。另外有k名销售员,仅仅要仓库的零件数满足顾客要求,便可提货并由保管员登记出库数量。

   规定:工人和销售员不能同一时候进入仓库,可是工人和工人,销售员和销售员能够同一时候进入仓库。设置信号量S1,初值为n,表示仓库空暇位置数;信号量S2。初值为0,表示仓库中零件箱数;信号量S3,初值为1,用于实现对保管员的相互排斥訪问。

则其管理系统流程图例如以下:

       

      软测试综述——PV操作


    对于工人进程,首先运行P(S1)申请资源。看仓库中是否有空暇位置。

若有,则将零件送入仓库。然后运行V(S2)表明仓库中已经有一箱零件,唤醒销售员进程,告知销售员能够提货了。然后运行PS3)申请资源,看是否有保管员空暇,若有。则登记入库数,然后运行VS3)释放保管员资源,使保管员处于空暇状态。


    对销售员进程,首先运行P(S2)申请资源,看仓库是否有货物,若有,进入仓库提货,然后运行V(S1)释放资源。使仓库空暇出一个位置。告知工人进程能够放置货物了,然后运行P(S3)申请资源,看是否有保管员空暇,若有,则登记出库数,然后运行VS3)释放保管员资源,使保管员处于空暇状态。

 

    通过上述实例可知,在现实生活中相互排斥和同步都是同一时候存在的,两者相辅相成。

 

    关于PV操作,相对来讲在软考的复习内容中是比較生疏的一部分,了解了它是什么,为什么使用它,它有什么长处以后,剩下的就是通过多多的实践练习来加深对理论的理解和吸收了。

 











版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117270.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 二项式分布和多项式分布的区别_二项式怎么化简

    二项式分布和多项式分布的区别_二项式怎么化简二项式定理(x+y)n=∑r=0n(nr)xryn−r=∑r=0nn!r!(n−r)!xryn−r(x+y)^n=\sum_{r=0}^n{n\chooser}x^ry^{n-r}=\sum_{r=0}^n\frac{n!}{r!(n-r)!}x^ry^{n-r}(x+y)n=r=0∑n​(rn​)xryn−r=r=0∑n​r!(n−r)!n!​xryn−reg:…

    2022年10月12日
    4
  • 【LeetCode】Symmetric Tree 推断一棵树是否是镜像的「建议收藏」

    【LeetCode】Symmetric Tree 推断一棵树是否是镜像的

    2022年2月1日
    47
  • TeX Live2018_latex安装教程

    TeX Live2018_latex安装教程Y·S2018年8月5日15:00:32点击链接https://tug.org/texlive/注:Latex不止TeX这一种,这里只给出了TeX的安装,如果想尝试别的软件的同学可以自行寻找其他教程。并执行如下操作:第一步第二步第三步第四步第五步装载下载好了的TexLive安装包:分以下几种情况:…

    2022年4月29日
    42
  • Windows 2016 服务器安全配置和加固「建议收藏」

    Windows 2016 服务器安全配置和加固「建议收藏」最近一个项目需要使用Windows服务器,选择安装了最新版的Windows2016,上一次使用Windows服务器还是Windows2008系统,发现变化还是挺多的,依次记录下来以备后面查阅。更换Windows更新服务器如果你觉得默认的Windows更新服务器比较慢,或者如果选择了阿里云或腾讯云服务器的话,可以更换Windows服务器。右键开始菜单图标,选择“运行”,然后输入gped…

    2022年6月9日
    313
  • Vim搜索关键字[通俗易懂]

    Vim搜索关键字[通俗易懂]有以下两种方法Method1:/content默认从上往下查找只读模式下输入/content后回车按n向下查找按N向上查找Method2:?content默认从下往上查找只读模式下输入?content后回车按n向上查找按N向下查找实例/content用Vim打开文件后,直接输入/关键字并回车,定位到第一个关键字,之后通过n向下查找,通过N向上查找?

    2022年9月23日
    1
  • java模拟器.apk_java游戏模拟器安卓版下载-java模拟器apk下载 v2.2.0 安卓版-IT猫扑网…

    java模拟器.apk_java游戏模拟器安卓版下载-java模拟器apk下载 v2.2.0 安卓版-IT猫扑网…手机游戏,给用户带来无限乐趣。该应用体积小,不占用太多内存,有需要的用户赶紧下载使用吧~应用介绍:Java手机游戏模拟器主要针对诺基亚S60系列(屏幕176*220)手机以及其他大屏手机(小屏游戏也可运行,但不能全屏显示),是一款非常简单而且实用的java游戏模拟器,可以正常运行绝大部分JAVA手机游戏!应用特点:Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特…

    2022年7月8日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号