저장소 logo 저장소

1. 동기화 문제 개념

동기화 문제란 여러 프로세스 또는 Thread가 공유 자원에 동시에 접근하여 잘못된 결과가 발생하는 문제 의미.

발생 원인


2. Race Condition

Race Condition이란 여러 Thread가 동일한 자원에 접근할 때 실행 순서에 따라 결과가 달라지는 현상 의미.

예시: count++

동작 과정

해당 과정이 원자적이지 않은 구조이기 때문에 값 손실 발생 가능.


3. 임계영역 (Critical Section)

임계영역이란 공유 자원에 접근하는 코드 영역 의미.

조건

구성


4. 동기화 해결 방법

대표적인 동기화 방법


5. Mutex

Mutex는 Mutual Exclusion 의미.

특징

동작 흐름

예시 구조

단점


6. Semaphore

Semaphore는 공유 자원 접근 개수를 제어하는 동기화 기법 의미.

특징

동작 원리

연산

예시 구조


7. Binary Semaphore

Semaphore 값이 0 또는 1만 가지는 경우 의미.


8. Mutex vs Semaphore 비교

구분 Mutex Semaphore
접근 가능 수 1개 N개
목적 상호 배제 자원 개수 제어
구조 Lock 기반 카운터 기반
관계 Binary Semaphore와 유사 일반화된 동기화 기법

핵심 정리

동기화 문제
공유 자원 동시 접근으로 인한 오류 발생 구조

Race Condition
실행 순서에 따라 결과가 달라지는 문제

Mutex
하나의 Thread만 접근 가능한 Lock 기반 제어

Semaphore
여러 스레드 접근 가능, 자원 개수 기반 제어


참고 자료

  1. KOCW, 운영체제 강의자료
    https://contents.kocw.or.kr/KOCW/document/2015/cup/weonsunghyun/5.pdf
  2. University of Illinois Chicago, Operating Systems Notes, “Process Synchronization”
    https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/5_Synchronization.html

« IPC (Inter 프로세스 Commun...
Deadlock »