둘 이상의 프로세스가 서로 자원을 기다리며 영원히 진행하지 못하는 상태이다.
예시
P1
Lock A
Wait B
P2
Lock B
Wait A
Deadlock 발생 조건
| 조건 | 의미 |
|---|---|
| Mutual Exclusion | 자원을 공유할 수 없다. |
| Hold and Wait | 자원을 가진 채 다른 자원을 기다린다. |
| No Preemption | 자원을 강제로 빼앗을 수 없다. |
| Circular Wait | 프로세스들이 원형으로 서로의 자원을 기다린다. |
P1 → P2 → P3 → P1
위 4개가 모두 만족해야 Deadlock이 발생한다.
| 핵심 정리 | 내용 |
|---|---|
| 발생 조건 | 네 조건이 모두 동시에 만족해야 한다. |
| 예방 방향 | 네 조건 중 하나라도 깨면 deadlock을 예방할 수 있다. |
| 대표 신호 | 여러 프로세스가 서로 lock을 잡은 채 상대 lock을 기다린다. |