1.2.8 교착 상태 중요도 ★★★
상호배제 기법 때문에 2개 이상의 프로세스가 각각 자원을 가지고 있으면서 서로의 자원을 요구하며 기다리는 상태를 교착 상태(deadlock)라고 한다. 교착 상태가 발생하는 4가지 필요 충분 조건이 있다.
• 상호배제(mutual exclusion): 하나의 공유 자원에 하나의 프로세스만 접근할 수 있다.
• 점유와 대기(hold and wait): 프로세스가 최소 하나의 자원을 점유하고 있는 상태에서 추가로 다른 프로세스에서 사용 중인 자원을 점유하기 위해 대기한다.
• 비선점(non-preemption): 다른 프로세스에 할당된 자원을 뺏을 수 없다.
• 환형 대기(circular wait): 프로세스가 자신의 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구한다.