교착상태란 두 개 이상의 프로세스가 서로 상대방이 갖고 있는 자원을 대기하면서 무한정 기다리는 상태를 의미한다.
교착 상태가 발생하면 시스템에서 더 이상 진행을 할 수 없게 된다. 각 프로세스가 필요로 하는 자원을 다른 프로세스가 점유하고 있기에 상호배제를 위해 대기하고 있는 상태가 된다.

deadlock은 시스템 자원에 대한 요구가 엉킨 상태로, 두 프로세스간 서로의 자원에 대하여 기다릴 때 발생을 한다.
그렇다면 deadlock은 꼭 두가지 프로세스에서만 발생을 할까?
아니다 deadlock은 4가지 조건이 동시에 충족이 될 때 발생을 하기 때문에 2개의 이상의 프로세스에서도 발생한다.
데드락이 발생된다면 여러 문제가 발생을 한다.
자원 낭비 : deadlock으로 인하여 시스템 내 자원이 효율적으로 사용되지 않는다. deadlock이 발생하면 자원들이 블록되어 다른 프로세스가 자원을 이용할 수 없게 된다.
프로세스 대기 : deadlock으로 인해 대기하는 프로세스가 발생하게 된다. 이는 시스템의 응답 시간이 오래 걸리게 만들고, 사용자나 다른 프로세스들의 실행에 있어 방해가 된다.
시스템 정지 : 시스템이 정지가 될 경우가 있다. 모든 프로세스가 deadlock이 발생될 경우 시스템은 더 이상 진행을 할 수 없게 된다.
데이터 손실 : 중요한 작업이 중단될 경우 데이터 손실이 발생할 수 있다. 예를 들어 파일 시스템에 deadlock이 발생 시 파일이 손상
deadlock이 발생하는 여러 문제가 야기되기 때문에 다음과 같은 방법이 사용이 된다.
데드락 예방
해당 문제가 발생하지 않도록 충족 조건에 대하여 만족하지 않도록 한다. 충족 조건은 4가지 中 어느 하나를 제거함으로 예방을 한다.
하지만 이는 자원 낭비가 심한 기법이다.
데드락 회피
교착상태가 발생할 가능성을 배제하지 않고 해당 문제가 야기된다면 적절하게 피해가는 방법이다.
리소스 할당의 측면에서, 교착상태가 발생할 가능성이 있는 자원 할당을 하지 않는다.
가장 많이 사용되는 방법으로는 은행원 알고리즘이 사용된다.
데드락 탐지 및 복구
교착 상태기 발생 할 수 있도록 두고 교착상태가 야기될 경우 찾아서 고친다.
데드락 무시