Starvation(기아상태)

JM1107·2022년 12월 6일
0

Starvation이란?

특정 프로세스의 우선순위가 낮아서 원하는 자원을 계속 할당받지 못하는 상태

Starvation 발생상황 1 - 우선순위 스케쥴링

N개의 Task가 있다.

  • N-1개의 우선순위는 1순위
  • 1개의 우선순위는 2순위
    새로 요청된 Task들의 우선순위가 계속 1순위라면 2순위 Task는 무한대로 대기하게 된다.

Starvation 발생상황 2 - SJF(Shortest - Job - First)

실행시간이 긴 Task는 짧은시간의 Task들이 계속 요청될 경우 무한대로 대기하게 된다.

Starvation 해결책

  1. aging기법 : 기다릴수록 프로세스에 aging을 통해 우선순위를 점차 높히는 기법 ( 가장 근본적인 해결책)
  2. 우선순위, SJF가 아닌 FIFO기법 사용
  3. 우선순위 수시 변경

DeadLock과 Starvation

:DeadLock은 여러 프로세스가 동일 자원 점유를 요청할 때 발생한다.
Starvation은 여러 프로세스가 부족한 자원을 점유하기 위해 경쟁할 때 특정 프로세스는 영원히 자원 할당이 안 되는 경우를 주로 의미한다.

profile
개발자준비

0개의 댓글