분산 컴퓨팅의 예는 다음과 같습니다.
1 배경
1.1 비동기 공유 메모리 모델
공유 메모리 변수를 사용하여 통신하는 분산 노드 모음을 고려하십시오. 노드가 단계를 수행하는시기와 메시지를 전달할시기를 제어하는 공격자가 있습니다. 계산은 비동기 적입니다 . 즉, 공격자는 임의의 (유한) 시간 동안 노드 단계를 지연시킬 수 있습니다. 노드
의 단계 는 다음 단계 가 현재 상태와 마지막 단계 이후 노드의 관측치에 의해 결정되는 알고리즘에 따라 로컬 오토 마톤의 상태 전이로 생각할 수 있습니다 .
1.2 안전과 활기
비동기 알고리즘의 속성에 대해 공식적으로 추론 할 때 안전 속성과 라이브 속성을 구분합니다. 비공식적으로
안전 속성은 "나쁜"일이 발생하지 않도록 보장하는 것으로 해석 될 수 있습니다. (예를 들어, 상호 배제의 경우 두 노드가 동시에 중요한 섹션에 들어 가지 않는 것이 안전 속성입니다.) 반면에 Liveness 는 "좋은 결과는 결국 일어날 것"으로 해석 될 수 있습니다 (예 : 모든 노드가 종료 됨).
미디엄미디엄α , β∈ 남2− n엔αβ
에스피⊆ 남피미디엄∖ P
코니 그의 무한대 렘마 적용
특정 속성이 안전 속성인지 확인하는 것이 항상 쉬운 것은 아닙니다. 기본 공유 메모리 변수 위에 읽기 / 쓰기 원자 객체의 구현을 고려하십시오. 이러한 구현은 요청과 응답을 마치 순간에 발생하는 것처럼 보이게하고 호출 순서를 위반하지 않는 방식으로 처리해야합니다. 비동기 작업으로 인해 요청과 응답 사이의 실제 지속 기간은 0이 아닐 수 있습니다. Atomicity는 Linearizability 라고도합니다 . [A]의 섹션 13.1은 Atomicity가 안전 속성이라는 증거를 제공합니다. 이 증거는 Koenig의 명예를 사용하여 무한한 실행 순서 (각각 Atomicity를 충족시키는)의 한계도 Atomicity를 만족 시킨다는 것을 보여줍니다.
[A] N. 린치. 분산 알고리즘. 모건 카우프만 (1996).