본문 바로가기
자격증/정보처리기능사

[정보처리기능사 실기] 교착 상태(DeadLock)

by 코딩여걸 2021. 8. 21.
728x90

< 교착 상태란? >

  • 상호배제에 의해 나타나는 문제점으로 두 개 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상
  • 상호배제, 점유 및 대기, 비선점, 환형 대기의 4가지의 발생 조건이 모두 만족해야만 발생
  • 교착 상태를 해결하기 위해서는 예방, 회피, 발견, 회복의 방법이 있다.

< 교착 상태의 발생 조건 >

  • 상호 배제(Mutual Exclusion) : 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 한다.
  • 점유 및 대기(Hold and Wait) : 이미 자원을 가진 프로세스가 다른 자원의 할당을 요구한다.
  • 비선점(Non-Preemption) : 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없다.
  • 환형 대기(Circular Wait) : 이미 자원을 가진 프로세스가 앞이나 뒤의 프로세스의 자원을 요구한다.

< 교착 상태의 해결 방법 >

  • 예방(Prevention) : 교착 상태 발생 조건 중 하나를 발생하지 않게 하는 방법이다.
  • 회피(Avoidance) : 교착 상태의 발생 가능성을 인정하고, 교착 상태 가능성을 피해가는 방법으로 은행원 알고리즘과 관계가 있다.
  • 발견(Detection) : 교착 상태가 발생했는지 검사하여 교착 상태에 빠진 프로세스와 자원을 발견하는 방법이다.
  • 회복(Recovery) : 교착 상태에 빠진 프로세스를 종료하거나 해당 프로세스가 점유하고 있는 자원을 선점하여 다른 프로세스에게 할당하는 기법이다.
728x90

댓글