열렬히.뛰기

4. 교착 상태의 처리방법

운영체제 > part 3 : 프로세스 동기화 > 공룡책 8장 : 교착상태 > 4. 교착 상태의 처리방법

처리 방법에는 크게 3가지가 있다.

  1. 문제를 무시하고, 교착상태가 절대 일어나지 않는 척 한다.
  2. 교착상태가 절대 안 일어나게 예방 또는 회피하는 프로토콜을 쓴다.
  3. 교착상태를 허용하게 함. 탐지 후 복구시킨다.

이러한 처리 방법이 완전하지 않을지는 몰라도, 실제 상황에서는 이들을 조합해서 쓸 수 있다.

또, 처리하는데 드는 비용도 생각하지 않을 수가 없다.

1번째 해결책

  • 대부분의 운영체제가 사용한다.
  • 교착상태 처리를 프로그래머에게 떠맡기는 것.
  • 제일 처리 비용이 싸다.

2번째 해결책

  • 교착상태 예방 : 필요조건 4가지 중 적어도 하나가 일어나지 않게 하는 방법.
  • 교착상태 회피 : 쓰레드가 쓸 자원에 대한 정보를 미리 얻어오기.

3번째 해결책

  • 주로 데이터베이스에서 많이 보인다.
  • 교착 상태를 탐지 및 복구에 주력.
    • 발견 시 시스템 정지 후 재가동.
  • 다른 라이브니스 조건으로부터 복구시키는 방법을 응용.
  • ex. 실시간 쓰레드 (= 최고 우선순위로 실행. 제어가 OS로 돌아가지 않음.)