0

Race condition如给出的示例operating System Concepts

count++ could be implemented as 
register = count
register = register1 + 1
count = register1

count-- could be implemented as
register2 = count
register2 = register2 - 1
count = register

consider this execution interleaving

s0: producer execute register = count
s1: producer execute register1 = register1 + 1
s2: consumer execute register2 = count
s3: consumer execute register2 = register2 - 1
s4: producer execute count = register1
s5: consumer execute count = register2

指令的交错是如何决定的?它是随机的还是使用了某种算法?而且,是谁决定的?

4

2 回答 2

1

你可以认为它是随机的。该示例是一个非常简化的解释,仅用于说明该概念,实际上还有更多内容。

看看这个答案:编译器在多线程程序中使用寄存器

于 2012-08-13T10:05:11.667 回答
1

在这种情况下,它可能指的是 2 个被调度的实体被赋予对处理器的控制权以便调度程序决定的方式。

于 2012-08-13T08:27:28.080 回答