[운영체제] 동기화 문제(Synchronization problem), 경쟁 상태(Race Condition), 임계 영역(Critical Section)

동기화 문제 (Synchronization Problem)

동시에 공유 자원에 접근하는 것은 데이터의 일관성을 해칠 수 있다. 프로세스들의 실행 순서를 정하여 공유 자원의 일관성을 보장하는 것을 동기화(Synchronization)라고 한다. 

 

경쟁 상태 (Race Condition) 

여러 프로세스들이 공유 자원에 동시에 접근하려고 하는 상황을 경쟁 상태라고 한다. 어떤 프로세스가 마지막으로 데이터에 접근했는지에 따라 데이터의 상태가 달라지게 된다. 즉, 데이터의 일관성을 보장할 수 없어진다.

 

이런 경쟁 상태의 문제를 해결하기 위해 프로세스들은 동기화(Synchronized)되어야 한다.

 

임계 영역 (Critical Section)

임계 영역은 공유 자원이 접근되는 부분을 뜻한다. 만약 어떤 프로세스가 임계영역의 작업을 수행중이라면 다른 프로세스는 해당 임계 영역에 들어와서는 안된다. 임계 영역을 구현하기 위해서는 3가지 조건을 충족해야 한다.

 

1. 상호배제 (Mutual Exclusion)

  • 프로세스 P가 해당 임계 영역을 수행 중이라면, 다른 프로세스들은 해당 임계영역을 수행 해서는 안된다.

2. 진행 (Progress)

  • 어떠한 프로세스도 임계 영역을 수행하고 있지 않을 때, 임계 영역에 접근하고자 하는 프로세스가 있다면 해당 프로세스를 임계 영역에 들어갈 수 있게 해야한다. 즉, 아무도 임계 영역에 없는데 프로세스가 임계 영역에 못 들어가면 안된다는 뜻이다.

3. 한정 대기 (Bounded Waiting)

  • 한 프로세스만 계속 임계영역을 수행하는 기아(Starvation)문제를 방지하기 위해 한 번 임계 영역에 들어간 프로세스는 한정(bound)을 두어 다른 프로세스도 해당 임계 영역을 수행 할 수 있도록 해야한다.

 

반응형

댓글

Designed by JB FACTORY