Consistencia Secuencial

Es un modelo de consistencia un poco más bébil que la consistencia etricta. Fué definida por Lamport (1979). Está definido por la siguiente condición:
 
El resultado de cualquier ejecución es el mismo que si las operaciones de todos los procesos fueran ejecutadas en algún orden secuencial, y las operaciones de cada proceso individual aparecen en esta secuencia en el orden especificado por su programa
Esto quiere decir que en este modelo sólo importa que los eventos generados por un programa sean vistos por otro en el mismo orden, sin importar que se intercalen con los eventos de otros programas.

Por ejemplo, tres procesos concurrentes podrían ejecutar las siguientes instrucciones:
 
 

P1

a=1; 
print(b, c);

P2

b=1;
print(a, c);

P3

c=1;
print(a, b);

Y cada proceso podría recibir los eventos ordenados y considerarlos válidos:
 
 
 

(a)

a=1; 
b=1;
print(a, c);
print(b, c);
c=1;
print(a, b);

(b)

c=1;
print(a, b);
a=1; 
b=1;
print(a, c);
print(b, c);

(c)

a=1; 
b=1;
c=1;
print(a, c);
print(b, c);
print(a, b);

La consistencia secuencial no garantiza que una lectura regrese el valor escrito por otro proceso un nanosegundo antes, un microsegundo antes, o incluso un minuto antes. Sólo garantiza que todos los procesos vean todas las referencias a memoria en el mismo orden.

Consistencia causal

Anterior | Siguiente