1. DeadLock(교착상태)
: 프로세스들이 각자 일부 자원을 가지고 있으면서, 상대방이 가진 자원을 요구하는 상태
1. Deadlock 발생의 4가지 조건
1. Mutual Exclusion (상호배제)
- 상호 배제적으로 사용되는 자원을 사용할 때 발생한다.
- 프로세스들이 동시에 한 자원을 사용할 수 있다면 해당 자원에 대해서는 데드락 발생X
2. No Preemption (비선점)
- 프로세스는 자원을 스스로 내어놓을 뿐 빼앗기지 않는다. (강제로 빼앗기지 않는다)
3. Hold and wait (보유대기)
- 자원을 가진 프로세스가 다른 자원을 기다릴 때 보유 자원을 놓지 않고 계속 가지고 있음 (스스로 내놓지 않는다)
- 프로세스는 일을 하기 위해 가지고 있는 자원은 절대로 내어놓지 않고 다른 자원이 오기까지 기다린다.
4. Circular wait (순환대기)
- 자원을 기다리는 프로세스들 간에 Cycle이 형성된다.
2. 자원그래프
- Cycle 없음
- Cycle 존재
- 자원의 인스턴스의 갯수 == 싸이클의 갯수 이면 데드락이 아니다.
- 이외의 경우는 데드락이다.
2. 교착상태 해결
1. Prevention(예방)