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

admin2018-09-11  34

问题 设有如下两个优先级相同的进程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和P1共享的变量只有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/eqRi777K
0

最新回复(0)