[CS] 동기화(Synchronization), 경쟁조건(Race Condition), 임계영역 (Critical Section)

조진우·2023년 5월 8일
0

Computer Science

목록 보기
6/7
post-thumbnail

💡 동기화 (Synchronization)


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

💡 경쟁조건 (Race Condition)


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

💡 임계영역 (Critical Section)


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

do{
	entrysection
    	critical section
    exit section
  } 

💡 임계영역 문제의 해결책이 되기 위한 조건


  1. mutual exclusion (상호배제) : 한번에 하나의 프로세스 or 스레드만 critical section에서 실행할 수 있음.
  2. progress (진행) : 만약에 critical section이 비어있는 경우 & 프로세스 or 스레드가 실행되길 원한다면 진행될 수 있어야 한다.
  3. bounded waiting (한정된 대기) : 프로세스 or 스레드가 무한정 기다리고 있으면 안된다.

profile
The Top of Iceblog

0개의 댓글