교착상태는 다중 프로그래밍 환경에서 효율적인 자원 관리를 위해 자원을 공유하면서 병행적으로 실행하기 때문에 발생한다. 일반적으로 프로세스는 다음과 같은 순서로 자원으로 사용한다.요청(request)프로세스는 시스템 호출을 통하여 사용하고자 하는 자원 할당을 운영체제에게 요청한다. 운영체제는 가능한 자원을 요청한 프로세스에게 할당해 준다.만약 요청한 자원이 다른 프로세스에 의해 사용중일 경우 프로세스는 대기 상태에서 기다리게 된다.사용(usage)프로세스는 할당받은 자원을 사용한다.해제(release)프로세스는 자원을 사용한 후 시스템 호출을 통하여 운영체제에게 자원 해제를 요청한다.프로세스의 교착상태가 발생하는 근본적인 원인은 다중 프로그래밍을 지원하는 운영체제에서 네 가지 조건을 동시에 만족시키면서 자..