다중 프로그래밍 환경에서 여러 프로세스들이 한정된 자원을 사용하려고 할 때 발생하는 문제
한 프로세스가 자원을 요청한 시점에 그 자원을 사용할 수 없는 상황이 발생할 수 있고, 그 떄는 프로세스가 대기 상태로 들어간다. 이렇게 대기 상태가 된 프로세스 다시 대기 상태를 변경시킬 수 없으면 그 상태를 교착상태(Deadlock) 이라고 부른다.
여기서 자원은 다수의 종류와 다수의 인스턴스로 구성될 수 있으며 유한한 수량을 가진다.
프로세스는 자원을 사용하기 전에 반드시 요청해야 하고, 사용 후에 반드시 방출해야한다.
프로세스가 요청할 수 있는 자원의 수는 시스템에서 사용 가능한 전체 자원의 수를 초과해서는 안된다.
프로세스는 1. 요청 → 2. 사용 → 3. 방출 순서로만 자원을 활용할 수 있다.
교착상태에서 프로세스들은 실행을 끝날 수 없으며, 시스템 자원이 묶여 있어서 다른 작업 시작하는 것 또한 불가능하다.