Operating system 指令交错是如何完成的?

Operating system 指令交错是如何完成的?,operating-system,Operating System,操作系统概念中给出的竞争条件的示例如下 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:

操作系统概念中给出的
竞争条件的示例如下

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

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

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

您可以认为它是随机的。这个例子是一个非常简单的解释,只是用来说明这个概念,实际上还有很多事情要做

看看这个答案: