Ich verstehe strenge und sequentielle Konsistenz unabhängig voneinander ziemlich gut.
Strict C erzwingt grundsätzlich die tatsächliche Reihenfolge, in der die Anweisungen auf der globalen Uhr ausgeführt wurden.
Sequentielle Konsistenz erzwingt die Reihenfolge grundsätzlich nur auf einem Prozessor.
Ich habe jedoch Probleme, Literatur zusammenzustellen. http://www.cs.nmsu.edu/~pfeiffer/classes/573/notes/consistency.html beschreibt die sequentielle Konsistenz so, dass Speicherverzögerungen berücksichtigt werden. Es kann einige Zeit dauern, bis sich ein Schreibvorgang auf alle Prozessoren ausbreitet. Aber wenn es das tut, erreicht es alle auf einmal, was in Ordnung ist. Daher gilt Folgendes unter Sequentielle Konsistenz
P1: W(x)1
-----------------------
P2: R(x)0 R(x)1
Was mich jetzt beschäftigt, sind die folgenden Prozesse, die so etwas wie Dekkers Algorithmus sind.
P1: W(x)1 R(y)0
-----------------
P2: W(y)1 R(x)0
Dies sollte unter sequentieller Konsistenz ( http://portal.acm.org/citation.cfm?id=1787234.1787255 S. 2) sicherlich NICHT möglich sein . Es gibt keine Gesamtreihenfolge, die dieses Ergebnis liefern könnte.
Aus der Idee heraus ist es jedoch sinnvoll, dass sich Schreibvorgänge durch sequentielle Konsistenz langsam ausbreiten und ein Thread möglicherweise keine Ahnung hat, was andere Prozessoren vorhaben.
Was fehlt mir hier?