순차 일관성
Sequential consistency순차적 일관성은 동시 컴퓨팅 영역(예: 분산 공유 메모리, 분산 트랜잭션 등)에서 사용되는 일관성 모델 중 하나이다.
그것은 처음에 다음과 같은 것을 요구하는 속성으로 정의되었다.
- "…어떠한 실행의 결과는 모든 프로세서의 조작이 어떤 순차적인 순서로 실행된 것과 같고, 각 개별 프로세서의 조작은 프로그램에 의해 지정된 순서대로 이 순서에 나타나게 되는 것과 같다.[1]
이 문장을 이해하려면 순차적인 정합성의 한 가지 핵심 특성을 이해하는 것이 필수적이다: 동일한 프로세서(또는 스레드)에 있는 프로그램의 실행 순서는 프로그램 순서와 동일하지만, 프로세서(또는 스레드) 간에 프로그램의 실행 순서는 정의되지 않는다.이와 같은 예에서는 다음과 같다.
A1, B1, C1 사이의 실행 순서는 보존된다. 즉, A1은 B1보다 먼저, B1은 C1보다 먼저 실행된다.A2와 B2도 마찬가지다.그러나 프로세서 간 실행 순서가 정의되지 않아 B2는 C1 이전 또는 이후에 실행될 수 있다(B2는 물리적으로 C1 이전으로 실행될 수 있지만, B2의 효과는 C1 이후 실행될 수 있으며, 이는 "C1 이후 실행"과 동일하다)
개념적으로, 단일 글로벌 메모리와 임의의 프로세서를 임의의 단계에서 메모리에 연결하는 "스위치"가 있다.각 프로세서가 프로그램 순서대로 메모리 작업을 실행하며 스위치는 모든 메모리[2] 작업 중에서 글로벌 직렬화를 제공한다.
순차적 일관성은 엄격한 일관성보다 약하며, 이는 마지막 쓰기 값을 해당 위치에 반환하기 위해 위치의 읽기를 필요로 한다. 엄격한 일관성은 실제 발행된 순서대로 운영을 볼 것을 요구한다.