进程管理PV操作

简介: 进程管理PV操作

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

具体定义:

P(S):

①将信号量S的值减1,即S=S-1;

②如果S30,则该进程继续执行;否则该进程置为等待状态,排入等待队列。

V(S):

①将信号量S的值加1,即S=S+1;

②如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。

考点:释放、等待

真题:

2020082617004764.png


分析:

首先,有顾客和收银员两进程,所以这个应该有同步的关系,要协作完成工作。顾客进程的主要工作是进入超市,在进超市之前看看自己能不能进,因为超市限制顾客的人数了。然后进去了,就开始买东西,买完了,就找收银员付钱,付完钱就可以走了。而收银员的工作应该是有顾客付钱来了,就要收钱了,收完钱了,再看看有没有买完东西要付钱的顾客,没有的话可以休息,有的话就继续收钱。

单看顾客进程,从上往下看。顾客进入的前提是要看看是不是能进去。题中信号量S1,S2,Sn初值分别为0,0,n。Sn表示超市可以放n个顾客进来,此时表示的是还有n个资源,也就是超市里一个顾客也没有。S1和S2都等于0是表示顾客和收银员都只有0个资源。

首先顾客进入,P(Sn)一下,Sn=Sn-1=n-1,n-1>0,所以可以放人。然后在超市购物,购完物要付款了,得找收银员了。是P一下,还是V一下,是P(S1)还是P(S2),是V(S1)还是V(S2)?

由于S1和S2都是0,虽然是先P,再V。而且一般同步是P自己,V别人。但是如果P一下,变-1<0,就要开始等待了,进行不下去了。所以应该是V一下,V谁呢,V收营员。哪个信号量是收银员? 不如假设一个,S1好了。V(S1),释放一个收营员的资源,S1=S1+1=1>0,所以收银员可以开始收费了。P(S2)一下,S2=S2-1=-1<0,其他顾客,就不要来付钱了,没地。而收银员要收费就看另一边好了

20200826170103639.png


收银员先怎样怎样,然后收费,然后怎样怎样。还是照一般的理,一般是先P,再V。而且一般同步是P自己,V别人。所以看看c1应该是P,P(S1)=S1-1=1-1=0,表示收银员的资源被占用了,其他要结账的顾客我忙着呢等等啊。c2,是收完钱,V(S2),S2=S2+1=1>0,所以顾客又可以开始来付钱了。

20200826170117300.png


最后顾客走了,释放了他在超市里占的那个资源,V(Sn)。 按照分析的结果,a、b1、b2、c1、c2分别是P(Sn),V(S1),P(S2),P(S1),V(S2)。然后根据选项答案是CDA


相关文章
|
4天前
|
Shell Linux 调度
cgroup 资源控制介绍
cgroup 资源控制介绍
|
21天前
|
Ubuntu Linux C语言
【操作系统原理】—— 信号量与PV操作实现
【操作系统原理】—— 信号量与PV操作实现
|
21天前
|
存储 Linux C++
linux信号量与PV操作知识点总结
linux信号量与PV操作知识点总结
|
21天前
|
存储 运维 Kubernetes
K8S基于NFS来动态创建PV【亲测可用】
K8S基于NFS来动态创建PV【亲测可用】
227 2
|
21天前
进程管理——PV操作
进程管理——PV操作
|
9月前
|
Linux
14.3.4 【Linux】使用 LVM thin Volume 让 LVM 动态自动调整磁盘使用率
14.3.4 【Linux】使用 LVM thin Volume 让 LVM 动态自动调整磁盘使用率
99 0
|
12月前
|
C++
【操作系统原理】信号量及PV操作详解
【操作系统原理】信号量及PV操作详解
250 0
|
数据建模
pv操作
pv操作
127 0
|
数据库 C++
【操作系统】-PV操作
【操作系统】-PV操作
109 0
【操作系统】-PV操作

热门文章

最新文章