码上考研408

计算机考研 408每日一题2025.9.13

2025年10月02日 更新

(操作系统)有两个并发执行的进程P? 和 P?,共享初值为1的变量x。P? 对x加1,P? 对x减1。加1和减1操作的指令序列分别如下所示。11联考-32两个操作完成后,x的值 ()。A. 可能为-1或3 B. 只能为1 C. 可能为0、1或2D. 可能为-1、0、1...

(操作系统)有两个并发执行的进程P? 和 P?,共享初值为1的变量x。P? 对x加1,P? 对x减1。加1和减1操作的指令序列分别如下所示。11联考-32两个操作完成后,x的值 (  )。A. 可能为-1或3    B. 只能为1      C. 可能为0、1或2D. 可能为-1、0、1或2

先别急着看答案,咱们一步步理清楚。

并发执行的时候,P?和P?的指令顺序可能“乱套”,共享变量x的结果就会变。

先看顺序执行的情况:P?先跑完,x从1→2再被P?减回1;P?先跑的话,x从1→0再被P?加回1——这两种情况结果都是1。

要是指令交错着来呢?

比如P?先加载x=1(还没改),P?也跟着加载同一个初始值1。P?执行加1变2,P?执行减1变0,最后存的时候谁后存就覆盖谁——要么是0,要么是2。

还有种情况是“覆盖逻辑”——

比如P?的存操作在P?之后,那0就被覆盖成2;反过来就是2被覆盖成0。但如果其中一个的存操作是基于已经被另一个修改过的x,结果可能还是1。

总结一下:

x的可能值是0、1或2,所以选C。

加微信咨询
张老师 @码上考研408
微信号:187******37

专业解答各类课程问题、介绍师资和学校情况

微信咨询
相关资讯
计算机考研 408每日一题2025.10.21 计算机考研 408每日一题2025.10.22 计算机考研408 每日一题2025.10.19 计算机考研 408每日一题2025.10.20 计算机考研 408每日一题2025.10.15
相关课程