더북(TheBook)

임계 영역

공유 자원에 접근할 수 있고 접근 순서에 따라 결과가 달라지는 코드 영역임계 영역(critical section)이라고 한다. 앞에서 냉장고에 우유 유무를 판단하고 우유를 추가하는 부분이 임계 영역에 해당한다. 임계 영역에서 경쟁 상태가 발생하는 것을 방지하려면 여러 프로세스가 공유 자원에 접근해도 데이터의 일관성이 유지되도록 프로세스 동기화(process synchronization)를 해야 한다.

임계 영역에 여러 접근이 동시에 발생하는 것을 방지하려면 다음 3가지 조건을 충족해야 한다.

상호배제 기법(mutual exclusive): 어떤 프로세스가 임계 영역을 실행 중일 때 다른 프로세스가 임계 영역에 접근할 수 없다. 상호배제 기법으로는 뮤텍스와 세마포어가 있다.

진행(progress): 임계 영역을 실행 중인 프로세스가 없을 때 다른 프로세스가 임계 영역을 실행한다.

한정된 대기(bounded waiting): 임계 영역에 접근을 요청했을 때 무한한 시간을 기다리지 않는다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.