본문 바로가기
소프트웨어 공학 용어 정리

[SW 용어] Starvation 정리

by minhyeok.lee 2024. 5. 21.
반응형

Starvation(기아현상)

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

2. 여러 프로세스가 부족한 자원을 점유하기 위해 경쟁할 때 특정 프로세스는 영원히 자원 할당이 안 되는 경우를 주로 의미한다.

3. 여기서 자원할당이란 OS(운영체제)에서 스케줄링 기법에 의해 Running(실행)상태에 들어갈 수 있는 프로세스 처리시간을 포함한 모든 자원을 이야기한다.

 

 


Starvation 해결방법

1. 우선순위 변경 알고리즘 사용한다.

    - 우선순위를 수시로 변경해서 각 프로세스가 높은 우선순위를 가져 자원을 할당 받을 수 있게 한다.

2. 오래 기다린 프로세스의 우선순위를 높여준다.

    - Aging 기법: 나무가 나이가 들수록 나이테가 늘어나는 것처럼 우선순위를 높여준다.

    - 프로세스가 수행되지 못할 때마다 우선순위를 높여 자원을 할당 받을  수 있게 한다.

3. 우선순위가 아닌, 요청 순서대로 처리하는 FIFO 기반의 요청큐를 사용한다.

    - 요청 순서대로 사용하여 프로세스가 자원을 할당받지 못하는 상태가 되지 않게 한다.

 


Starvation vs Deadlock

  공통점

1. 프로세스가 원하는 자원을 계속 할당받지 못하는 상태를 말한다.

2. 여러 프로세스가 자원을 요청할 때 발생한다.


  차이점

Starvation

1. 해당 자원은 우선순위가 높은 다른 프로세스에 의해 계속하여 선점당해 우선순위가 낮은 프로세스는 계속해서 자원을 요청하며 기다리는 상태이다.

2. 해당 자원은 여러 프로세스가 동시에 사용하기에는 부족한 자원이고 이를 차지하기 위해 경쟁할 때 특정 프로세스는 계속 자원할당을 받을 수 없는 상태이다.

 

Deadlock

1. 해당 자원은 다른 프로세스가 가지고 있고 그 자원을 가진 프로세스는 다른 프로세스가 가지고 있는 자원을 요청하는 환형구조로 자원을 요청하여 해결되지 못하는 상태이다.

2. 해당 자원은 여러 프로세스가 동시에 사용하기에 부족할 수도 있고 부족하지 않을 수 있으나 아래 4가지 조건떄문에 자원이 부족하지 않아도 프로세스가 계속 자원할당을 받을 수 없는 상태가 된다.

    - 상호 배제(Mutual exclusion): 매 순간 하나의 프로세스만이 독점적으로 자원 사용한다.

    - 비선점(Non-Preemption): 프로세스는 자원을 빼앗기지 않는다.

    - 점유대기(Hold & Wait): 자원을 가진 프로세스가 다른 자원을 기다릴 때 보유자원을 반환하지 않는다.

    - 순환대기(Circular wait): 자원을 기다리는 프로세스간 사이클이 형성되어 있다. (환형 - 뱀이 꼬리를 무는 형태)

 

 

더 자세한 Deadlock에 대한 내용은 아래에서 확인할 수 있다.

2024.05.20 - [소프트웨어 공학 용어 정리] - [SW 용어] Deadlock 정리

 

[SW 용어] Deadlock 정리

Deadlock(교착상태)1. Deadlock이란 여러 프로세스 혹은 스레드가 일어날 수 없는 이벤트나 자원할당을 무한정 대기하는 것이다.2. 여러 프로세스가 동일 자원을 요청할 때 발생한다.3. 아래 4가지 조

kfdd6630.tistory.com

 

반응형

댓글