为大家在考前整理了软件设计师案例分析题答案汇总!考前可以速记一下。
有电子版本的,可以打印下载来看看!
第 8 问 PV 操作都必须要成对出现吗?
答:
PV 一定是成对出现的,PV 可以简单理解为加锁和解锁,如果只加锁也就是只有 P 操作,可能会形 成死锁。如果没有加锁,只有解锁也就是 V 操作,那么相当于系统中资源无端增多,也就没有意义了。
以打印机为例,如果对打印机加上 PV 操作,P 操作相当于,每个人用之前都锁定一次打印机(S=S-1), 此时其他人去打印时进行申请,会发现资源不足(S<0),此时就进入阻塞队列去排队了;而 V 操作相当于, 能够使用打印机的人,用完之后,之前占有的打印机就会释放给其他人用(S=S+1),此时如果发现有人排队(S<=0),就会通知排队的人,可以使用了。
如果只占有不释放,很明显,排队的人只会持续暴增;如果只释放,那么信号量 S 无端增加 1&