题50

题目

Q:有两个优先级相同的并发程序 ,它们的执行过程如下所示。
假设当前信号量
当前的 ,进程运行结束后, 的值分别是 ( )。
// 进程 P1

...
y := 1;
y := y + 2;
z := y + 1;
V(s1);
P(s2);
y := z + y;
...

// 进程 P2

...
x := 1;
x := x + 1;
P(s1);
x := x + y;
z := x + z;
V(s2);
...

A.
B.
C.
D.

分析

A:V是释放,P是申请

  • 由于进程并发, 因此进程的执行具有不确定性
  • 执行到第一个 操作前, 应该是相互无关的
  • 现在考虑第一个对 操作
    • 由于进程 操作
      • 因此它必须等待 执行完 操作后才可继续运行
      • 此时的 值分别是
    • 当进程 执行完 后便在 上阻塞
    • 此时 可以运行直到
      • 此时的 值分别是
    • 进程 继续运行到结束
      • 最终的 值分别为

C