OS Scheduling Algorithms

FCFS, SJF/SRTF, RR의 대기 시간 트레이드오프

기본 스케줄링 알고리즘은 평균 대기 시간, 응답성, 공정성, 예측 가능성을 서로 다른 방식으로 교환한다.

01

FCFS

도착 순서대로 처리해 단순하지만 긴 작업 앞에서 convoy effect가 생긴다.

convoy
02

SJF

짧은 작업을 먼저 처리하면 평균 대기 시간이 줄지만 burst 예측이 필요하다.

shortest
03

SRTF

더 짧은 남은 시간이 들어오면 선점해 평균 시간을 더 줄일 수 있다.

preemptive
04

RR

타임 퀀텀마다 돌아가며 실행해 응답성을 얻지만 문맥 전환 비용이 생긴다.

time quantum
평균 대기
SJF/SRTF는 평균 대기 시간을 낮추는 데 강하다. 긴 작업 starvation을 막기 위한 aging이 필요할 수 있다.
short job bias
응답성
RR은 interactive workload에서 첫 응답을 빠르게 만든다. quantum이 너무 작으면 context switch overhead가 커진다.
quantum tuning
예측성
FCFS는 예측 가능하지만 사용자 체감 지연이 커질 수 있다. batch 작업에는 단순성이 장점이 될 수 있다.
batch friendly

알고리즘 비교 지표

burst 예측 SJF 계열은 다음 CPU burst를 어떻게 예측할지 필요하다.
문맥 전환 RR quantum과 context switch 비용의 균형을 본다.
기아 짧은 작업 우선 정책이 긴 작업을 무한히 미루지 않는다.

평가식

turnaround = completion - arrival
waiting = turnaround - burst
response = first_run - arrival