Consistencia secuencial

En las computadoras, la consistencia secuencial se define mejor por su inventor, Leslie Lamport, quien declaró que un sistema de multiprocesamiento tenía consistencia secuencial si:

"... el resultado de cualquier ejecución es el mismo que si las operaciones de todos los procesadores se ejecutaran en algún orden secuencial, y las operaciones de cada procesador individual aparecen en esta secuencia en el orden especificado por su programa".

Esta definición fue una de las primeras declaraciones sobre lo que constituía un comportamiento "correcto" para un sistema de multiprocesamiento simétrico (SMP). Se ha reformulado de diversas formas, entre ellas las siguientes:

La coherencia secuencial requiere que un multiprocesador de memoria compartida parezca un sistema de multiprocesador de multiprogramación para cualquier programa que se ejecute en él.

La consistencia secuencial requiere que:

1. Todas las instrucciones se ejecutan en orden.

2. Cada operación de escritura se vuelve visible instantáneamente en todo el sistema.

Implícito en la definición de consistencia secuencial estaba el reconocimiento de que los sistemas SMP podían fallar en ser secuencialmente consistentes. ¿Deberían las máquinas ser coherentes secuencialmente? Desde el punto de vista de casi veinte años después, las respuestas son mixtas. Algunos dicen "sí", que las máquinas deben ocultar las complejidades de la implementación para hacer que las máquinas sean lo más fáciles de usar posible. Otros dicen "no", que violar SC permite que las máquinas aumenten el rendimiento considerablemente mientras que al mismo tiempo incomoda sólo a un número muy reducido de programadores.