처리 방법에는 크게 3가지가 있다.
- 문제를 무시하고, 교착상태가 절대 일어나지 않는 척 한다.
- 교착상태가 절대 안 일어나게 예방 또는 회피하는 프로토콜을 쓴다.
- 교착상태를 허용하게 함. 탐지 후 복구시킨다.
이러한 처리 방법이 완전하지 않을지는 몰라도, 실제 상황에서는 이들을 조합해서 쓸 수 있다.
또, 처리하는데 드는 비용도 생각하지 않을 수가 없다.
1번째 해결책
- 대부분의 운영체제가 사용한다.
- 교착상태 처리를 프로그래머에게 떠맡기는 것.
- 제일 처리 비용이 싸다.
2번째 해결책
- 교착상태 예방 : 필요조건 4가지 중 적어도 하나가 일어나지 않게 하는 방법.
- 교착상태 회피 : 쓰레드가 쓸 자원에 대한 정보를 미리 얻어오기.
3번째 해결책
- 주로 데이터베이스에서 많이 보인다.
- 교착 상태를 탐지 및 복구에 주력.
- 발견 시 시스템 정지 후 재가동.
- 다른 라이브니스 조건으로부터 복구시키는 방법을 응용.
- ex. 실시간 쓰레드 (= 최고 우선순위로 실행. 제어가 OS로 돌아가지 않음.)