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