Consistência sequencial

Em computadores, a consistência sequencial é melhor definida pelo seu inventor, Leslie Lamport, que declarou que um sistema multiprocessado tinha consistência sequencial se:

"...o resultado de qualquer execução é o mesmo que se as operações de todos os processadores fossem executadas em alguma ordem sequencial, e as operações de cada processador individual aparecessem nesta sequência na ordem especificada pelo seu programa".

Esta definição foi uma das primeiras afirmações sobre o que constituía o comportamento "correto" para um sistema de multiprocessamento simétrico ( SMP ). Ela foi reexpressa em várias formas, entre elas as seguintes:

Consistência seqüencial requer que um multiprocessador de memória compartilhada pareça ser um sistema multiprogramador semiprocessador para qualquer programa em execução nele.

Consistência seqüencial requer isso:

1. Todas as instruções são executadas em ordem.

2. Cada operação de escrita torna-se instantaneamente visível em todo o sistema.

Implicidade na definição de consistência sequencial foi o reconhecimento de que os sistemas SMP poderiam falhar em ser consistentes sequencialmente. As máquinas devem ser seqüencialmente consistentes? Do ponto de vista de quase vinte anos mais tarde, as respostas são mistas. Alguns dizem "sim", que as máquinas devem ocultar complexidades de implementação, a fim de tornar as máquinas tão fáceis de usar quanto possível. Outros dizem "não", que violar o SC permite que as máquinas aumentem consideravelmente o desempenho, ao mesmo tempo em que inconvenientemente apenas um pequeno número de programadores desaparece.