Learning
토픽 34 / 85·프로세스 동기화와 교착상태

데드락 (Deadlock)

데드락 (Deadlock)

두 개 이상의 프로세스가 서로의 자원을 기다리며 영구 블록되는 상태

특징: 순환 대기, 영구 블록, 자원 할당 그래프

필요 조건(4가지 모두 충족 시): 상호 배제 / 점유 대기 / 비선점 / 순환 대기

처리 방법

  • 예방(Prevention): 4조건 중 하나 제거 (순환 대기 제거=자원 순서 부여가 가장 실용적)
  • 회피(Avoidance): 안전 상태 검사 후 할당, 은행원 알고리즘(Max 사전 파악, O(m*n^2))
  • 탐지(Detection): 허용 후 주기적 탐지, Wait-for Graph(사이클=데드락)
  • 복구(Recovery): 프로세스 종료(전체/하나씩) 또는 자원 선점(롤백)
  • 무시(Ignore): 타조 알고리즘, 범용 OS(Linux/Windows) 채택

비교: 예방(비효율/확실) vs 회피(보수적) vs 탐지(실용적/복구필요) vs 무시(단순)

연관: 동기화, 뮤텍스, 세마포어, 은행원 알고리즘, 순환 대기