I don't understand these. Let's say I have a value 10 at memory address x.
If we have
thread1:
Read(x)
x+=5
Write(x)
and then:
thread2:
Read(x)
x+=2
Write(x)
I don't get what is valid sequential or strict consistency.
Like, here, is this a valid strictly consistent operations result?
T1: R(x), found 10 W(x), x is now 15
T2 R(x),found 10 W(x), x is now 12
That seems so useless. x has the wrong value... it wasn't additive. That said, the accesses executed by each processor were kept in-order and the same order was seen by everyone. Those are the criterion for strict consistency, right? It doesn't matter that the result got crushed.
And for a sequential consistency... I don't get the distinction between it and strict.