둘 이상의 스레드가 동시에 접근하면 예기치 못한 문제가 발생할 수 있는, 공유 자원을 다루는 코드 영역을 의미한다.
현대 프로그램은 여러 스레드가 동시에 실행되고, 성능 향상을 위해 병렬처리를 적극 활용한다. 이때 여러 스레드가 공유자원(전역변수, 파일, DB레코드)에 동시에 접근하면 의도하지 않은 결과가 발생 할 수 있다.
이때 여러 스레드가 동시에 접근하면 문제가 생길 수 있는 코드 구간을 임계영역이라고 한다는 것이다.
두 개 이상의 스레드가 경쟁적으로 공유자원에 접근하면서, 실행순서에 따라 결과가 달라지는현상을 말한다.
어떤 스레드가 먼저 실행되느냐에 따라 프로그램의 동작이 달라지는 불안정한 상태이다.
레이스 컨디션은 임계영역을 보호하지 않았을 때 생기는 결과물이다.
[CS] 임계영역(Critical Section) 이란?
정보처리기사 필수! 임계영역 완벽 마스
[OS] 병행 제어(Process Synchronization)에 대해 알아보자!