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

この場合、2つのスケジュールされたエンティティがプロセッサの制御を与えられ、スケジューラが決定する方法を指している可能性があります。

于 2012-08-13T08:27:28.080 に答える
1

あなたはそれをランダムであると考えることができます。この例は、概念を説明するためだけに使用される非常に単純化された説明であり、実際にはそれ以上のものがあります。

この答えを見てください:マルチスレッドプログラムでのコンパイラによるレジスタの使用

于 2012-08-13T10:05:11.667 に答える