정의
여러 프로세스가 데이터를 공유하며 수행될 때, 각 프로세스에서 공유 데이터를 접근하는 프로그램 코드 블록을 말한다.
여러 프로세스나 쓰레드가 동일 자원을 동시에 참조하여 값이 오염될 위험 가능성이 있는 영역이며 프로그래밍 시엔 성능 향상을 위해 이 영역을 최소화하는 방향으로 설계 해야 한다.
임계 영역 해결 조건
- 상호 배제(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 |