OS · SYNCHRONIZATION
동기화 패턴 선택 기준
락을 쓸지, 메시지를 보낼지, CAS를 쓸지는 공유 상태의 형태와 실패 비용을 기준으로 나누면 명확해집니다.
첫 질문
판단
공유 상태가 있는가?
없앨 수 있다면 Actor나 채널이 단순합니다.
블로킹을 허용하는가?
짧은 임계 구역이면 모니터, 긴 대기는 큐가 낫습니다.
패턴 지도
매핑
Monitor
공유 객체 내부에서 조건 대기와 상호 배제를 함께 관리합니다.
Lock-Free
짧고 빈번한 갱신을 CAS로 처리하지만 구현 난도가 높습니다.
Actor
상태를 소유자 안에 가두고 메시지로 요청을 전달합니다.
Channel
데이터 이동 자체가 동기화 경계가 되어 공유 메모리를 줄입니다.
운영 체크
risk
데드락
둘 이상의 락이 필요하면 획득 순서를 문서화합니다.
기아
재시도 기반 구조는 대기 횟수와 백오프 정책이 필요합니다.
관측성
스레드 덤프, 큐 길이, 락 대기 시간을 지표로 남깁니다.