Learning
토픽 23 / 85·프로세스 동기화와 교착상태

동기화 (Synchronization)

동기화 (Synchronization)

여러 프로세스/스레드가 공유 자원에 접근할 때 일관성과 순서를 보장하기 위한 메커니즘으로, 경쟁 상태와 데이터 불일치를 방지

목적: 데이터 일관성, 경쟁 상태 방지, 순서 제어, 원자성 보장

특징: 상호 배제, 임계 구역, 원자적 연산, 블로킹

문제

  • 경쟁 상태(Race Condition): 동시 접근 시 결과가 순서에 의존, 데이터 불일치
  • 임계 구역 문제(Critical Section): 공유 자원 접근 코드, 한 번에 하나만 실행
  • 데드락(Deadlock): 순환 대기로 영구 블록
  • 기아(Starvation): 무한 대기

임계 구역 요구사항

  • 상호 배제(Mutual Exclusion): 한 번에 하나만 실행
  • 진행(Progress): 임계 구역 비어있으면 진입 가능
  • 한정 대기(Bounded Waiting): 유한 시간 내 진입 보장

동기화 기법: 뮤텍스, 세마포어, 모니터, 조건 변수, 스핀락, 원자적 연산

하드웨어 지원: Test-and-Set, Compare-and-Swap, Fetch-and-Add (원자적 명령어)

적용사례: 멀티스레드 프로그램, 데이터베이스 트랜잭션, 공유 메모리 IPC

동기화 기법 비교표

연관: 뮤텍스, 세마포어, 임계 구역, 경쟁 상태, 데드락