Entendo consistência estrita e seqüencial de forma independente bastante bem.
C estrito basicamente impõe a ordem real na qual as instruções foram executadas no relógio global.
Consistência sequencial basicamente impõe o pedido apenas em um processador.
Estou tendo problemas para montar alguma literatura. http://www.cs.nmsu.edu/~pfeiffer/classes/573/notes/consistency.html descreve a consistência sequencial como permitindo o 'atraso' da memória. Pode levar algum tempo para uma gravação se propagar por todos os processadores. Mas quando isso acontece, atinge todos eles ao mesmo tempo, o que é bom. Portanto, o seguinte é válido em Consistência sequencial
P1: W(x)1
-----------------------
P2: R(x)0 R(x)1
O que me preocupa agora são os seguintes processos, que são algo como o algoritmo de Dekker.
P1: W(x)1 R(y)0
-----------------
P2: W(y)1 R(x)0
Isso NÃO deve ser possível com consistência sequencial ( http://portal.acm.org/citation.cfm?id=1787234.1787255 pág 2). Não há um pedido total que possa dar esse resultado.
Mas faz sentido a ideia de que a consistência seqüencial permite que as gravações se propaguem lentamente e um encadeamento pode não ter idéia do que outros processadores estão fazendo.
O que estou perdendo aqui?