멀티코어 동기화 & 메모리 모델
별점: ★★★★★ | 기본 필수
답안.
Ⅰ. 개요
Test-and-Set: 읽기+쓰기 원자적 수행 Compare-and-Swap (CAS): CAS(addr, expected, new):
Ⅱ. 핵심 구성요소
[원자적 연산 (Atomic Operations)]
HW가 분할 불가능하게 실행 보장
Test-and-Set: 읽기+쓰기 원자적 수행
Compare-and-Swap (CAS):
CAS(addr, expected, new):
if (*addr == expected): *addr = new, return true
else: return false
→ 락프리 알고리즘의 기반
Fetch-and-Add: 원자적 증가
LL/SC (Load-Link/Store-Conditional): ARM 방식
[x86 명령어]
LOCK CMPXCHG: CAS 구현
XCHG: Test-and-Set 구현
[메모리 순서 보장 레벨]
Relaxed: 재정렬 마음대로 (성능 최대)
Release-Acquire: Acquire 이후/Release 이전만 보장
Sequential Consistency: 모든 순서 보장 (느림)
[실제 HW 메모리 모델]
x86: TSO (Total Store Order) = 거의 순차 일관성
ARM/RISC-V: 약한 모델, 재정렬 많음 → 배리어 필요
[프로그래밍 언어 원자 연산]
C++ std::atomic<int> x{0};
해당 키워드의 기술적 구성요소와 동작 원리를 서술한다.
### Ⅲ. 특징 및 비교
핵심 기술의 장단점과 유사 기술과의 차이를 분석한다.
### Ⅳ. 적용 사례
실무 환경에서의 적용 사례와 기대효과를 제시한다.
### Ⅴ. 전망
최신 기술 동향과 향후 발전 방향을 서술한다.