핵심 개념
역사 독립적인 동시성 객체를 구현하는 것은 어려운 과제이며, 이에 대한 근본적인 가능성과 불가능성 결과를 제시한다.
초록
이 논문은 동시성 객체에 대한 역사 독립성을 연구하고, 이에 대한 근본적인 가능성과 불가능성 결과를 제시한다.
- 역사 독립성은 객체의 내부 메모리 표현이 객체에 적용된 연산 기록을 드러내지 않고 현재 상태만을 나타내는 것을 의미한다.
- 동시성 객체에 대한 역사 독립성을 정의하는 것은 간단하지 않은데, 동시 실행 중에는 객체가 완전히 정지 상태가 되지 않기 때문이다.
- 저자들은 관찰자가 메모리를 검사할 수 있는 시점을 제한하는 다양한 정의를 제시한다:
- 완벽한 역사 독립성: 관찰자가 언제든 메모리를 검사할 수 있음
- 상태 정지 역사 독립성: 상태 변경 연산이 진행 중이지 않을 때만 메모리를 검사할 수 있음
- 정지 역사 독립성: 객체가 완전히 정지 상태일 때만 메모리를 검사할 수 있음
- 저자들은 대부분의 객체에 대해 대기 무한 구현이 불가능하다는 것을 보이며, 이는 심지어 상태 정지 역사 독립성을 만족하는 경우에도 성립한다.
- 반면, 충분히 큰 기반 객체를 사용하면 모든 객체를 대기 무한, 역사 독립적으로 구현할 수 있다는 강력한 긍정적 결과를 제시한다.
통계
객체의 상태 공간 크기를 𝑠, 프로세스 수를 𝑛이라 할 때, 𝑂(𝑠 + 2𝑛) 크기의 비교-교환 기반 객체로 대기 무한, 역사 독립적 구현이 가능하다.
인용구
"역사 독립적인 구현은 객체의 내부 메모리 표현이 객체에 적용된 연산 기록을 드러내지 않고 현재 상태만을 나타내는 것을 의미한다."
"동시성 객체에 대한 역사 독립성을 정의하는 것은 간단하지 않은데, 동시 실행 중에는 객체가 완전히 정지 상태가 되지 않기 때문이다."