2개 이상의 프로세스가 특정 공유 데이터를 확득하지 못하고 무한정 대기하는 상태
다음 4가지 조건 중 하나라도 만족하면 발생한다.
다른 프로세스가 가지고 있는 공유 데이터의 권한을 뺏어오지 못하는 상태
비선점 상태에서는 자원을 점유한 프로세스가 자원을 강제로 반납할 수 없다
프로세스들이 원형 형태로 공유 데이터를 대기하는 상태
어떤 자원을 획득한 상태에서 다른 자원을 획득하고자 대기하는 상황
여러 프로세스가 동시에 자원을 사용할 수 없는 상황
4가지 발생 조건 중 하나 이상의 조건이 발생하지 않도록 강제하는 방법
회피 기법은 데드락이 발생하지 않을 정도로만 조심스럽게 자원을 할당하는 방식이다.
이 기법에선 데드락을 한정된 자원의 무분별한 할당으로 인해 데드락이 발생한다고 가정하여,
마구잡이로 자원을 할당하지 않고 더욱 신중하게 자원을 할당하는 방식이다.
즉, 데드락 회피 기법은 항상 안전 상태를 유지하도록 자원을 할당하는 방식이다.
데드락 탐지 & 회복 기법은 데드락이 발생했을 때가 되어서야 그떄가서 조치를 취하는 방법이다.
선점을 통한 회복
데드락이 해결될 때 까지 한 프로세스씩 자원을 몰아주는(일명 몰빵) 방식이다. 데드락이 해결될 떄 까지 다른 프로세스로부터 자원을 강제로 빼앗아 버린뒤, 빼앗은 자원들을 한 프로세스에 할당한다.
프로세스 강제 종료를 통한 회복
프로세스를 강제로 종료시켜서 데드락을 회복할 수 있다. 가장 단순하면서 확실한 방식이다. 운영체제는 데드락에 빠진 프로세스들을 모두 강제 종료할 수도 있고, 데드락이 없어질 떄 까지 한 프로세스만 강제 종료할 수도 있다. 하지만 많은 프로세스들이 작업한 내역을 잃게 될 수 있다.