2025-10-07 22:58

Tags: 운영체제

기아 상태 (Starvation)

  • 특정 프로세스가 실행에 필요한 자원을 계속해서 할당받지 못해 무기한 대기하는 현상을 의미한다.
  • 이는 주로 우선순위 기반 프로세스 스케줄링에서 고우선순위 프로세스들에게 계속 밀리거나, 불공정한 자원 할당 정책 때문에 발생한다.
  • 기아 상태를 해결하기 위해 프로세스의 대기 시간에 비례해 우선순위를 높여주는 ‘에이징(Aging)’ 기법이나,
    • 모든 프로세스에게 공평한 실행 기회를 보장하는 스케줄링 알고리즘(라운드 로빈 등)을 사용한다.
구분기아 상태 (Starvation)교착 상태 (Deadlock)라이브락 (Livelock)
상태프로세스는 대기(Ready) 상태에 있지만 스케줄러에 의해 선택되지 못함여러 프로세스가 서로가 점유한 자원을 기다리며 블록(Blocked) 상태에 빠짐프로세스들은 계속 상태를 변경하며 능동적으로 움직이지만, 실질적인 진행은 없음
진행고우선순위 프로세스들은 계속 실행됨모든 관련 프로세스가 멈춤모든 관련 프로세스가 헛된 작업만 반복하며 멈춤
원인스케줄링 정책의 불공정성상호 배제, 점유와 대기, 비선점, 원형 대기 4가지 조건 동시 충족잘못된 상호 회피/복구 메커니즘
비유계속된 VIP 손님 때문에 식사를 못하는 일반 손님두 차량이 외나무다리 양 끝에서 마주 보고 멈춰 선 상황복도에서 마주친 두 사람이 서로 같은 방향으로 계속 피하려다 지나가지 못하는 상황