📜  门| GATE CS 2019 |第 32 题

📅  最后修改于: 2021-09-26 03:36:43             🧑  作者: Mango

考虑如下所示的三个并发进程 P1、P2 和 P3,它们访问一个已初始化为 100 的共享变量 D。 该进程在运行分时操作系统的单处理器系统上执行。如果三个进程执行完毕后D的最小值和最大值分别为X和Y,则Y-X的值为__________。

注意:这是数字类型问题。
(一) 80
(乙) 130
(C) 50
(D)这些都不是答案:(一)
说明: D 的最小值 (X) 在以下情况下是可能的,

  1. P2 读取 D=100,被抢占。
  2. P1 执行 D=D+20,D=120。
  3. P3 执行 D=D+10,D=130。
  4. 现在,P2 有 D=100,执行,D = D-50 = 100-50 = 50。P2 写入 D=50 最终值。

因此,D 的最小值 (X) 是 50。

当 D 的最大值 (Y) 可能时,

  1. P1 读取 D=100,被抢占。
  2. P2 读取 D=100,执行,D = D-50 = 100-50 = 50。
  3. 现在,P1 执行,D = D+20 = 100+20 = 120。
  4. 现在,P3 读取 D=120,执行 D=D+10,D=130。 P3 写入 D=130 最终值。

因此,D 的最大值 (Y) 为 130。

所以,

= Y - X
= 130 - 50
= 80 

所以,选项(A)是正确的。
这个问题的测验