공유 자원은 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일등을 말한다.
공유 자원에는 프로세스들의 접근 순서를 정하여 예상치못한 결과를 방지해야 한다.
2개 이상의 프로세스가 공유 자원을 병행적으로 읽거나 쓰는 상황
공유 자원의 접근 순서에 따라 실행 결과가 달라지는 프로그램의 영역
상호 배제
한 프로세스가 임계 구역에 들어가면 다른 프로세스는 임계구역에 들어갈 수 없다
한정 대기
어떤 프로세스도 무한대기를 하지 않아야 한다.
진행의 융통성
한 프로세스가 다른 프로세스의 진행을 막아서는 안된다