교착상태란, 교착상태의 발생조건

나의 답변

둘 이상의 프로세스들이 각자 자원을 점유하고 있으면서 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상입니다.

발생 조건은 상호배제, 점유와 대기, 비선점, 환영 대기가 모두 충족해야만 합니다.

개념

  • 교착상태란?
    • 교착상태(Dead Lock)은 상호 배제에 의해 나타나는 문제점으로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상
  • 교착상태 발생의 필요 충분 조건

    아래의 네 가지 조건이 모두 충족되어야 교착상태가 발생한다. 네 가지 조건 중 하나라도 충족되지 않으면, 교착상태가 발생하지 않는다.

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