운영체제

교착상태

0_TLS 2025. 1. 24. 21:35

교착 상태 

둘 이상의 프로세스들이 서로 다른 프로세스가 차지하고 있는 자원을 요구하며 무한정 기다리게 되어 해당 프로세스들의 진행이 중단되는 현상

 

교착상태의 발생 조건

  • 상호배제(Mutual Exclusion) : 한 번에 한 프로세스만이 어떤 자원을 사용할 수 있다.
  • 점유 및 대기(Hold and Wait) : 프로세스는 다른 자원이 할당되기를 기다리는 동안 이미 확보한 자원을 계속 보유하고 있다.
  • 비선점(Non-preemption) : 자원을 보유하고 있는 프로세서로부터 다른 프로세서가 강제로 그 자원을 뺏을 수 없다.
  • 환형 대기(Circular Wait) : 이미 자원을 가진 프로세스가 앞이나 뒤의 프로세스의 자원을 요구한다. 

 

교착상태의 해결 방법

  • 예방(Prevention) 
    • 교착상태가 발생하지 않도록 사전에 시스템 제어
    • 자원의 낭비가 가장 심함
  • 회피(Avoidance) 
    • 교착상태 발생 가능성을 인정하고 교착상태가 발생하려고 할 때, 교착상태 가능성을 피해가는 방법
    • 은행가, wound-wait, wait-pie
  • 발견(Detection)
    • 교착상태가 발생했는지 검사하여 교착상태에 빠진 프로세스와 자원을 발견하는 방법
  • 회복(Recovery)
    • 교착상태에 빠진 프로세스를 종료하거나 해당 프로세스가 점유하고 있는 자원을 선점하여 다른 프로세스에게 할당

'운영체제' 카테고리의 다른 글

프로세스 스케줄링 기법  (2) 2025.01.24