본문 바로가기

정보처리기사 실기

교착상태(Dead Lock)

교착상태(Dead Lock)

상호 배제에 의해 나타나는 문제점으로 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상

 

교착상태 발생의 필요 충분 조건
  • 상호 배제(Mutual Exclusion) : 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 함
  • 점유와 대기(Hold and Wait) : 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당돼 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함
  • 비선점(Non-preemption) : 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함
  • 환형 대기(Circular Wait) : 공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성돼 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 함

 

교착상태 해결 방법

- 예방 기법(Prevention)

  • 교착상태가 발생하지 않도록 사전에 시스템을 제어하는 방법으로 교착상태 발생의 네가지 조건 중에 어느 하나를 제거함으로써 수행
  • 상호 배제 부정 : 한 번에 여러 개의 프로세스가 공유 자원을 사용할 수 있도록 함
  • 점유 및 대기 부정 : 프로세스가 실행되기 전에 필요한 모든 자원을 할당해 프로세스 대기를 없애거나 자원이 점유되지 않은 상태에서만 자원을 요구
  • 비선점 부정  : 자원을 점유하고 있는 프로세스가 다른 자원을 요구할 때 점유하고 있는 자원을 반납하고 요구한 자원을 사용하기 위해 기다리게 함
  • 환형 대기 부정 : 자원을 선형 순서로 분류해 고유 번호를 할당하고 각 프로세스는 현재 점유한 자원의 고유 번호보다 앞이나 뒤 어느 한쪽 방향으로만 자원을 요구하도록 하는 것

-회피 기법(Avoidance)

  • 교착상태가 발생할 가능성을 배제하지 않고 교착상태가 발생하면 적절히 피해나가는 방법으로 주로 은행원 알고리즘이 사용된다.

-발견 기법(Detection)

  • 시스템에 교착 상태가 발생했는지 점검해 교착 상태에 있는 프로세스와 자원을 발견하는 것으로 자원 할당 그래프 등을 사용한다.

-회복 기법(Recovery)

  • 교착 상태를 일으킨 프로세스를 종료하거나 교착 상태의 프로세스에 할당된 자원을 선점해 프로세스나 자원을 회복하는 것

'정보처리기사 실기' 카테고리의 다른 글

ER(Entity Relationship) 모델  (0) 2021.06.02
데이터베이스(Database)  (0) 2021.06.02
스케줄링  (0) 2021.06.01
프로세스(Process) 관리  (0) 2021.06.01
가상 기억장치(Virtual Memory)  (0) 2021.06.01