공유 자원 접근 순서에 따라 실행 결과가 달라지는 프로그램의 영역이다.
한 프로세스가 임계구역에 들어가면 다른 프로세스는 임계구역에 들어갈 수 없다.
어떤 프로세스도 무한 대기하지 않는다.
한 프로세스가 다른 프로세스의 진행을 방해해서는 안 된다.
상호 배제(Mutual Exclusion)에서 이름을 따온 축약 형태(MUTual EXclusion)이다. 프로세스는 임계구역에 들어가기 전에 반드시 락을 획득해야 하고 임계구역을 빠져나올 때 락을 반환해야 한다.
바쁜대기
: 무한 루프를 돌며 잠금이 풀리기를 기다리는 대기뮤텍스는 바쁜 대기를 사용하여 자원을 낭비하고 알고리즘이 복잡하다. 이를 해결하기 위해 Dijkstra가 제안한 알고리즘이다.
세마포어는 다른 알고리즘과 달리 임계구역이 잠겼는지 직접 점검하거나, 바쁜 대기를 하거나, 다른 프로세스에 동기화 메시지를 보낼 필요가 없다.
임계 구역 사용(P), 사용 완료(V) 코드 실행 도중 다른 코드가 실행되면 상호 배제와 한정 대기 조건을 보장하지 못한다.