Entiendo la consistencia estricta y secuencial independientemente bastante bien.
El estricto C básicamente impone el orden real en el que se ejecutaron las instrucciones en el reloj global.
La coherencia secuencial básicamente impone el orden solo en un procesador.
Sin embargo, tengo problemas para reunir algo de literatura. http://www.cs.nmsu.edu/~pfeiffer/classes/573/notes/consistency.html describe la coherencia secuencial que permite el "retraso" de la memoria. Puede tomar tiempo para que una escritura se propague por todos los procesadores. Pero cuando lo hace, los alcanza a todos a la vez, lo cual está bien. Por lo tanto, lo siguiente es válido bajo Consistencia secuencial
P1: W(x)1
-----------------------
P2: R(x)0 R(x)1
Lo que me preocupa ahora son los siguientes procesos, que es algo así como el algoritmo de Dekker.
P1: W(x)1 R(y)0
-----------------
P2: W(y)1 R(x)0
Esto seguramente NO debería ser posible con la coherencia secuencial ( http://portal.acm.org/citation.cfm?id=1787234.1787255 pg 2). No hay un orden total que pueda dar este resultado.
Pero tiene sentido la idea de que la coherencia secuencial permite que las escrituras se propaguen lentamente y un hilo puede no tener idea de lo que otros procesadores están haciendo.
¿Que me estoy perdiendo aqui?