정의
여러 프로세스가 데이터를 공유하며 수행될 때, 각 프로세스에서 공유 데이터를 접근하는 프로그램 코드 블록을 말한다.
여러 프로세스나 쓰레드가 동일 자원을 동시에 참조하여 값이 오염될 위험 가능성이 있는 영역이며 프로그래밍 시엔 성능 향상을 위해 이 영역을 최소화하는 방향으로 설계 해야 한다.
임계 영역 해결 조건
- 상호 배제(Mutual exclution)
= 하나의 프로세스가 임계 영역에 들어가 있다면 다른 프로세스는 들어갈 수 없어야한다.
- 진행(Progress)
= 임계영역에 들어간 프로세스가 없는 상태에서 들어가려 하는 프로세스가 여러개라면 어느것이 들어갈지 결정해주어야 한다.
- 한정대기(Bounded waiting)
= 다른 프로세스의 기아(Starvation)를 방지하기 위해, 한번 임계구역에 들어간 프로세스는 다음번 임계 영역에 들어갈 때 제한을 두어야한다.
해결 방법
뮤텍스, 세마포어 등의 방법이 존재한다.