设有如下两个优先级相同的进程P1和P2。信号量S1和S2的初值均为0,试问P1、P2并发执行结束后,z的值可能是( )。

admin2017-04-28  40

问题 设有如下两个优先级相同的进程P1和P2。信号量S1和S2的初值均为0,试问P1、P2并发执行结束后,z的值可能是(    )。

选项 A、4、8、11
B、4、6
C、6、8
D、4、8

答案D

解析 这类题目其实不难,但这种题却很容易答错,原因就是很容易漏掉某种情况。
首先,将上述进程分解成以下6个程序段:

假设没有PV操作的情况下。进程并发执行关系用前驱图表示如图7—7所示。
加入了PV操作后用前驱图表示如图7—8所示。
由于x的值只有PS4、PS5决定,且两者顺序关系确定,则易得x的值始终为4。又P2和Pl共享的变量只有z,则PS6与PS1、PS2、PS3的关系决定了最终的y和z的值。又根据进程前驱图得,PS6在PS1之后。所以可能的情况有(PS4、PS5所处的顺序有多种情况,但都不对最后结果产生影响,为了方便,我们统一把PS4、PS5放在PS1后面执行):
PS1、PS4、PS5、PS6、PS2、PS3;
PS1、PS4、PS5、PS2. PS6、PS3;
PS1、PS4、PS5、PS2、PS3、PS6;
这3种情况,计算过程如表7—2所示。

综上所述,z的值可能是4、8。
转载请注明原文地址:https://kaotiyun.com/show/UXRi777K
0

最新回复(0)