Deadlock이란
정의
두 개 이상의 프로세스가 서로 자원을 획득하지 못해 Race Condition이 발생하여 아무런 작업을 하지 못하는 상태
Deadlock 발생 조건
상호배제(Mutual Exclusion)
- Critical Section에 하나의 프로세스 또는 스레드만 진입 가능하다
점유대기(Hold & wait)
- 프로세스 또는 스레드가 자신이 가진 자원을 들고 원하는 자원을 획득할 때 까지 대기한다
비선점(Non-premption)
- 프로세스 또는 스레드가 다른 프로세스 또는 스레드의 점유 자원을 선점(preemption) 하지 않는다
순환대기(Circular wait)
- 두 개 이상의 프로세스 또는 스레드가 자원 점유 구조에 있어 사이클을 형성한다