Java OpenResty Spring Spring Boot MySQL Redis MongoDB PostgreSQL Linux Android Nginx 面试 小程序 Arthas JVM AQS juc Kubernetes Docker 诊断工具


软考-系统架构设计师:进程管理 - PV 操作

软考 系统架构设计师 评论 1 大约 978 字

PV操作与信号量的处理相关,P表示通过的意思,V表示释放的意思。

狄克斯特拉用荷兰文定义的,通过叫passeren,释放叫vrijgeven,PV操作因此得名。这是在计算机术语中不是用英 语表达的极少数的例子之一。

  • 临界资源:进程间需要互斥方式对其进行共享的资源,如打印机、磁带机等

  • 临界区:每个进程中访问临界资源的那段代码称为临界区

  • 信号量:是一种特殊的变量

PV操作图示

pv.png

示例描述

单缓冲区生产者、消费者问题

生产者:                消费者:
    生产一个产品;            P(S2);
    P(S1);                从缓冲区取产品;
    送产品到缓冲区;            V(S1);
    V(S2);                消费产品;

S1初值为1,S2初值为0

练习题1

某书店有一个收银员,该书店最多允许n个购书者进入。将收银员和购书者看作不同的进程,其工作流程如下图所示。利用PV操作实现该过程,设置信号量S1、S2和Sn,初值分别为0,0,n。则图中a1,a2应填入(),图中b1和b2应填入()。

lxt.png

A.P(S1)、V(S2)、P(Sn)、V(S2)
B.P(S2)、V(S)、V(Sn)、P(S2)
C.V(S1)、P(S2)、P(S1)、V(S2)
D.V(Sn)、P(Sn)、P(S2)、V(S1)

练习题2

进程P1、P2、P3、P4、P5的前趋图如下: qqt.gif

若用PV操作控制进程并发执行的过程,则需要设置4个信号量S1、S2、S3和S4且信号量初值都等于零。下图中a和b应分别填写(1) ,c和d应分别填写(2), e和f应分别填写(3)。
example.gif

第一空:
A. P(S1)和P(S2)
B. P(S1)和V(S2)
C. V(S1)和V(S2)
D. V(S1)和P(S2)

第二空:
A. P(S1)、P(S2)和V(S3)、V(S4)
B. P(S1)、P(S2)和P(S3)、P(S4)
C. V(S1)、V(S2)和P(S3)、P(S4)
D. V(S1)、V(S2)和V(S3)、V(S4)

第三空:
A. P(S3)和P(S4)
B. P(S3)和V(S4)
C. V(S3)和V(S4)
D. V(S3)和P(S4)

参考

百度百科:PV操作

阅读 5085 · 发布于 2019-08-29

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb

扫描下方二维码关注公众号和小程序↓↓↓

扫描二维码关注我
昵称:
  • risen 1楼
    你好,有答案解析吗
    
    Chrome Generic | macOS 2020-09-15
    作者回复
    可参考:https://github.com/xxlllq/system_architect
    Chrome 67.0 | Win10 2020-09-15
随便看看 换一批