교착상태의 해결법

나의 답변

교착 상태의 해결법은 예방 기법(Prevention), 회피 기법(Avoidance), 발견 기법(Detection), 회복 기법(Recovery)가 있습니다.

개념

  • 예방 기법
    • 교착상태가 발생하지 않도록 사전에 시스템을 제어하는 방법으로 교착상태 발생의 네 가지 조건 중에서 어느 하나를 제거함으로써 수행된다. 자원 낭비가 가장 심한 기법
  • 회피 기법
    • 교착상태가 발생할 가능성을 배제하지 않고 교착상태가 발생하면 적절히 피해나가는 방법. 주로 은행원 알고리즘이 사용된다.
  • 발견 기법
    • 시스템에 교착상태가 발생했는지 점검하여 교착상태에 있는 프로세스와 자원을 발견하는 것을 의미
  • 회복 기법
    • 교착상태를 일으킨 프로세스를 종료하거나 교착상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복하는 것을 의미
    • 자원 선점
      • 교착상태의 프로세스가 점유하고 있는 자원을 선점하여 다른 프로세스에게 할당하며, 해당 프로세스를 일시 정지시키는 방법.
      • 우선순위가 낮은 프로세스, 수행된 정도가 적은 프로세스, 사용되는 자원이 적은 프로세스 등을 위주로 해당 프로세스의 자원을 선점한다.
    • 자원 선점 시 고려사항
      1. 자원을 선점할 프로세스 선택 문제 : 최소의 피해를 줄 수 있는 프로세스를 선택한다.
      2. 자원을 선점한 프로세스의 복귀 문제 : 자원이 부족한 상태이므로 대부분 일시 중지시키고 다시 시작하는 방법을 사용한다.
      3. 기아 현상 문제 : 한 프로세스가 계속하여 자원 선점 대상이 되지 못하도록 고려해야 한다.

출처 : https://coding-factory.tistory.com/311