(작성중) 동기화, 경쟁 조건, 임계 영역

Jinhoon Yoon·2023년 8월 30일
0

운영체제

목록 보기
4/5

동기화를 모르면 예상치 못한 오류가 발생할 수 있다.
특히 멀티스레딩 기반의 백엔드 API를 만들 때 중요하다.

스레드 뿐만 아니라,
프로세스 끼리도 공유되는 자원에 동시에 접근하고 있다면,
같은 문제가 발생할 수 있다.

00:00 오프닝
00:13 동기화 없으면 생길 수 있는 일
08:32 race condition(경쟁 조건)이란?
08:48 synchronization(동기화)란?
09:02 어떻게 동기화 시킬 것인가?
10:47 critical section(임계 영역)이란?
11:11 critical section 문제를 해결하는 뼈대
11:52 critical section 문제 해결책의 조건
12:58 프로그래밍 할 때 thread safe한지 확인
14:44 클로징


용어

경쟁 조건(race condition)

  • 여러 프로세스/스레드가 동시에 같은 데이터를 조작할 때, 타이밍이나 접근 순서에 따라 결과가 달라질 수 있는 상황

동기화(synchronization)

  • 여러 프로세스/스레드를 동시에 실행해도 공유 데이터의 일관성을 유지하는 것

임계 영역(critical section)

  • 공유 데이터의 일관성을 보장하기 위해 하나의 프로세스/스레드만 진입해서 실행 가능한 영역

critical section problem

해결책이 되기 위한 조건

  1. 상호 배제 (mutual exclusion)
  2. 진행 (progress)
  3. 한정된 대기 (bounded waiting)

    3가지 조건 모두를 만족해야함

0개의 댓글