운영체제 데드락 조건 4가지

다수의 프로세스가 서로가 가진 자원을 기다리며 무한히 멈춰버리는 치명적인 상태, ‘데드락(Deadlock)’의 발생 원인과 운영체제의 대응 전략을 분석한다.

교착 상태 성립의 4대 조건

데드락은 다음 4가지 조건이 동시에 충족될 때 발생한다.

  • 상호 배제 (Mutual Exclusion): 한 번에 한 프로세스만 자원을 점유할 수 있다.
  • 점유와 대기 (Hold and Wait): 자원을 가진 상태에서 다른 자원을 추가로 대기한다.
  • 비선점 (No Preemption): 타 프로세스의 자원을 강제로 회수할 수 없다.
  • 환형 대기 (Circular Wait): 대기 프로세스들이 순환 고리 구조를 형성한다.

데드락 해결을 위한 관리 정책

  • 예방 (Prevention): 발생 조건 중 하나를 사전에 차단한다.
    자원 낭비가 발생할 수 있다.

  • 회피 (Avoidance): 자원 할당 전 데드락 가능성을 미리 계산한다.
    (은행원 알고리즘)

  • 탐지 및 복구 (Detection & Recovery): 발생을 허용하되, 주기적으로 확인하여 강제 종료 등으로 해결한다.
  • 무시 (Ignore): 발생 빈도가 낮을 경우 조치 비용을 아끼기 위해 무시한다.
    (현대 OS의 주류 방식)

P.S

데드락은 시스템 안정성을 위협하는 핵심 문제다.

자원 관리 정책을 설계할 때 발생 가능성을 고려한 방어적 설계가 필요하는 것 같다.

Author avatar

웨이호프

WordPress creator and blogger.

View all posts