共有変数 x、y、および z にアクセスする 2 つのプロセスがあります。各プロセスは、これらの変数を保持するために使用されるストアの異なるレプリカにアクセスします。x、y、z の値は最初は 0 です。
プロセス 1:
x = 1;
if (y == 0)
z++;
そしてプロセス 2:
y = 1;
if (x == 0)
z++;
両方のステートメントを完了した後、a) シーケンシャルおよび b) カジュアル一貫性モデルにおける z の可能な値は何ですか?
逐次一貫性では、プログラムによって指定された順序でプロセスが実行されることを知っています。上記の例では、2 つのプロセスがプロセスで指定された順序で同時に実行されるため、順次整合性モデルでは z の結果はゼロになると思います。そのため、if 条件は実行されません。しかし、よくわかりません。
カジュアルなものの場合、関連する書き込みはすべてのプロセスで同じ順序にする必要があります。同時書き込みは異なる順序にすることができます。このルールがこの例でどのように機能するかわかりません。