Dead Lock은 서로가 가진 자원을 기다리면서 관련 작업들이 더 이상 진행하지 못하는 상태입니다. 발생하려면 다음 네 가지 필요조건이 모두 성립해야 합니다.

  • 상호 배제: 한 자원을 동시에 여러 작업이 사용할 수 없습니다.
  • 점유 대기: 자원을 가진 채 다른 자원을 기다립니다.
  • 비선점: 보유한 자원을 외부에서 강제로 빼앗을 수 없습니다.
  • 순환 대기: 서로의 자원을 기다리는 관계가 고리를 이룹니다.

대응은 예방, 회피, 탐지 및 복구, 무시로 나눕니다.
실무에서는 락 획득 순서를 통일하고, 잠금 범위를 줄이며, 실패 시 안전하게 자원을 해제하는 설계가 중요합니다.

출처 및 참고자료