티스토리 뷰

반응형

교착 상태 해결 방법

교착 상태를 해결하는 방법은 예방, 회피, 검출, 회복 방법이 있다.

 

해결 방법 특징
교착 상태 예방 교착 상태를 유발하는 네 가지 조건을 무력화 한다.
교착 상태 회피 교착 상태가 발생하지 않는 수준으로 자원을 할당한다.
교착 상태 검출 자원 할당 그래프를 사용하여 교착 상태를 발견한다.
교착 상태 회복 교착 상태를 검출한 후 해결한다.

 


교착 상태 예방

  1. 상호 배제 예방
  2. 비선점 예방
  3. 점유와 대기 예방
  4. 원형 대기 예방

📗 상호 배제 예방

시스템 내에 있는 상호 배타적인 모든 자원, 즉 독립적으로 사용할 수 있는 자원을 없애버리는 방법이다. 시스템 내의 모든 자원을 공유할 수 있다면 교착 상태가 발생하지 않는다.

 

📗 비선점 예방

모든 자원을 빼앗을 수 있도록 만드는 방법이다. 하지만 어떤 기준으로 빼앗을지, 빼앗은 시간 중 얼마나 사용할지 등 결정하기 어렵고 아사 현상을 일으킬 수도 있다.

 

📗 점유와 대기 예방

프로세스가 자원을 점유한 상태에서 다른 자원을 기다리지 못하게 하는 방법이다. 다시 말해 '전부 할당하거나 아니면 아예 할당하지 않는'방식을 적용하는 것이다.

 

📗 원형 대기 예방

점유와 대기를 하는 프로세스들이 원형을 이루지 못하도록 막는 방법이다. 그러나 프로세스 작업 진행에 유연성이 떨어지고 자원의 번호를 어떻게 부여할 것인지에 대한 문제가 존재한다.

 

 

 

교착 상태 회피

프로세스에 자원을 할당할 때 어느 수준 이상의 자원을 나누어주면 교착상태가 발생하는지 파악하여 그 수준 이하로 자원을 나누어주는 방법이다.

 

문제점

  1. 프로세스가 자신이 사용할 모든 자원을 미리 선언해야 한다.
  2. 시스템의 전체 자원 수가 고정적이어야 한다.
  3. 자원이 낭비된다.

 

*은행원 알고리즘

은행이 대출해주는 방식

☞ 대출 금액이 대출 가능한 범위(안정 상태) 내이면 허용되지만 그렇지 않으면 거부

 

*안정 상태

☞ 각 프로세스의 기대 자원과 비교하여 가용 자원이 크거나 같은 경우가 한 번 이상인 경우

 

 

 

교착 상태 검출

운영체제가 프로세스의 작업을 관찰하면서 교착 상태 발생 여부를 계속 주시하는 방식이다.

 

📗 타임아웃

일정 시간 동안 작업이 진행되지 않은 프로세스를 교착상태가 발생한 것으로 간주하는 방법이다.

 

문제점

  1. 엉뚱한 프로세스가 강제 종료될 수 있다.
  2. 모든 시스템에 적용할 수 없다.

📗 자원 할당 그래프를 이용한 교착 상태 검출

교착 상태가 없는 자원 할당 그래프

 

 

 

 

실선 : 점유

점선 : 대기

 

 

 

교착 상태가 있는 자원 할당 그래프

 

 

 

 

 

 

 

 

 

 

 

이 방법은 프로세스의 작업 방식을 제한하지 않으면서 교착 상태를 정확하게 파악할 수 있다는 것이 장점이다.

그러나 오버헤드가 발생하는 단점이 있다.

 

 

교착 상태 회복

교착 상태를 유발한 프로세스를 강제로 종료하여 교착 상태를 회복한다.

 

  1. 교착 상태를 일으킨 모든 프로세스를 동시에 종료
  2. 교착 상태를 일으킨 프로세스 중 하나를 골라 순서대로 종료

 

 

좋아요 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함