软考-前驱图PV操作

软考-前驱图PV操作

 

技巧:

1. 按从P1到P5的顺序分析

2. 箭头指向一端是P操作,另一端是V操作

分析:

先从P1出发,P1->P2的信号量用S1标示,

再从P2出发,P2->P3之间是S2,P2->P4之间是S3

同理可得

P3->P5之间是S4

P4->P5之间是S5

又因 箭头指向一端是P操作,另一端是V操作,所以对于S1来说 a处是V(S1),b处有对应的P(S1)

对于S2来说 c处有V(S2),d处有P(S2),

对于S3来说 c处有V(S3),f处有P(S3),

对于S4来说 e处有V(S4),g处有P(S4),

对于S5来说 已有V(S5),g处有P(S5),

综上所说

a处:V(S1)

b处:P(S1)

c处:V(S2),V(S3)

d处:P(S2)

e处:V(S4)

f处:P(S3)

g处:P(S4),P(S5)

 

技巧

消费者要等待生产者生产出产品才可以往下执行,因此消费进程的第一步肯定是P操作且信号量S大小为0;
生产者在生产结束后,要唤起消费者从缓冲区中取产品,因此生产进程最后一步肯定是V操作,且信号量名称要与第一步保持一致,即S,系统才能循环运行起来。

P操作是从自身往外输出东西,因此是S-1,又因为只要自身不为0便可对外输出,因此 S<0 [P操作S-1,往队列插入数据,S<0]

V操作是从外部拿东西进来,因此是S+1,即使自身为0了,还可以从外部继续拿东西,因此S<=0 [V操作S+1,从队列取出数据,S<=0]

 

上一篇:阿里云支持超级账本最新版 其区块链解决方案进入商用阶段


下一篇:Android应用底部导航栏(选项卡)实例