동기화(synchronization), 경쟁 조건(race condition), 임계 영역(critical section)

김승현·2023년 1월 16일
0
  • 경쟁 조건(race condition)
    • 여러 프로세스/스레드가 동시에 같은 데이터를 조작할 때 타이밍이나 접근 순서에 따라 결과가 달라질 수 있는 상황

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

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

critical section problem의 해결책이 되기 위한 조건

  1. mutual exclusion (상호 배제)
    • 한번에 하나의 프로세스/스레드만 critical section에서 실행할 수 있다.
  2. progress (진행)
    • 만약에 critical section이 비어있고 어떤 프로세스/스레드들이 critical section에 들어가길 원한다면 그 중에 하나는 critical section에서 실행될 수 있도록 해야한다.
  3. bounded waiting (한정된 대기)
    • 어떤 프로세스/스레드가 무한정 critical section에 들어가지 못하고 기다리고 있으면 안된다.



참조

쉬운코드_동기화(synchronization), 경쟁 조건(race condition), 임계 영역(critical section)을 자세하게 설명합니다! 헷갈리시는 분들 꼭 보세요!

profile
개발자로 매일 한 걸음

0개의 댓글