데드락 (DeadLock)
- 시스템의 잘못된 자원 관리로 멀티프로그래밍 환경에서 멈춰버리는 현상
- 다른 프로세스가 점유하고 있는 자원을 기다리면서 둘 이상의 프로세스가 무한대기에 빠지는 상태
데드락 발생조건
- 상호배제(Mutual exclusion) : 자원은 한 프로세스에 의해서만 점유가능
- 점유대기(Hold and wait) : 최소한 하나의 자원을 점유한 상태에서, 다른 프로세스가 점유한 자원을 기다리는 프로세스가 존재해야함
- 비선점(No preemption) : 다른 프로세스가 점유한 자원은 강제로 빼앗을 수 없음
- 순환대기(Circular wait) : 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있음