공유자원은 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등을 말합니다.
공유 자원은 공동으로 이용되기 때문에 누가 언제 데이털르 읽거나 쓰느냐에 따라 그 결과가 달라질 수 있다.
따라서 프로세스들의 공유 자원 접근 순서를 정하여 예상치 못한 문제가 발생하지 않도록 해야한다.
공유 자원 접근 순서에 따라 실행결과가 달라지는 프로그램의 영역을 임계영역(Critical section)이라고 한다.
상호 배제(mutual exclusion)
한프로세스가 임계영역에 들어가면 다른 프로세스는 임계구역에 들어갈수 없다.
한정 대기(bounded wating)
어떤 프로세스도 무한대기하지 않아야한다. 특정 프로세스가 임계구역에 진입하지 못하면 안된다.
진행의 융통성(progress flexibility)
한 프로세스가 다른 프로세스의 진행을 방해해서는 안된다.