본문 바로가기
CS

임계 구역 (Critical Section)

by 남생이야 2024. 5. 19.

정의

  여러 프로세스가 데이터를 공유하며 수행될 때, 각 프로세스에서 공유 데이터를 접근하는 프로그램 코드 블록을 말한다. 

여러 프로세스나 쓰레드가 동일 자원을 동시에 참조하여 값이 오염될 위험 가능성이 있는 영역이며 프로그래밍 시엔 성능 향상을 위해 이 영역을 최소화하는 방향으로 설계 해야 한다.

 

 

임계 영역 해결 조건

  • 상호 배제(Mutual exclution) - 하나의 프로세스가 임계 영역에 들어가 있다면 다른 프로세스는 들어갈 수 없어야한다.
  • 진행(Progress) - 임계영역에 들어간 프로세스가 없는 상태에서 들어가려 하는 프로세스가 여러개라면 어느것이 들어갈지 결정해주어야 한다.
  • 한정대기(Bounded waiting) - 다른 프로세스의 기아(Starvation)를 방지하기 위해, 한번 임계구역에 들어간 프로세스는 다음번 임계 영역에 들어갈 때 제한을 두어야한다.

 

해결 방법 

뮤텍스, 세마포어 등의 방법이 존재한다. 

'CS' 카테고리의 다른 글

세마포어(Semaphore)  (0) 2024.05.21
뮤텍스(Mutex)  (0) 2024.05.20
문맥교환 오버헤드 (Context Switch Overhead)  (0) 2024.05.17
상호배제(Mutual Exclusion)  (0) 2024.05.16
인터럽트(Interrupt)  (0) 2024.05.15