SCHEDULING EXAMPLES

스케줄링 알고리즘 비교 기준

FCFS, SJF, Round Robin을 정의로만 외우면 평균 대기시간을 계산할 때 흔들린다. 각 프로세스의 arrival time, burst time, quantum, preemption 여부를 시간축에 놓고 convoy effect, starvation, context switch 비용까지 함께 봐야 한다.

01

입력 표 작성

프로세스별 도착시간과 burst time, 우선순위, quantum을 먼저 정리한다.

도착 전 프로세스는 선택 후보가 아니다
02

시간축 그리기

CPU가 어느 시각에 어떤 프로세스를 실행하는지 간트 차트로 표시한다.

선점 여부가 차트를 바꾼다
03

대기시간 계산

완료시간에서 도착시간과 실행시간을 빼 waiting time을 구한다.

중간에 나눠 실행된 대기 구간을 모두 포함한다
04

정책 부작용 확인

FCFS의 convoy, SJF의 starvation, RR의 context switch 비용을 판단한다.

평균이 좋아도 공정성이 나쁠 수 있다
05

quantum 비교

Round Robin에서 quantum이 너무 작거나 클 때 응답성과 오버헤드가 어떻게 바뀌는지 본다.

너무 크면 FCFS에 가까워진다
FCFS
도착 순서 먼저 온 작업을 먼저 실행해 단순하지만 긴 작업이 앞에 오면 convoy가 생긴다.
비선점이 기본이다
SJF
짧은 작업 우선 평균 대기시간을 줄일 수 있지만 긴 작업이 밀리는 starvation 위험이 있다.
실행시간 예측이 필요하다
SRTF
선점형 SJF 새로 온 작업의 남은 시간이 더 짧으면 현재 작업을 선점한다.
도착 시점마다 다시 비교한다
RR
시간 할당량 순환 각 프로세스가 quantum만큼 번갈아 실행되어 응답성이 좋아진다.
context switch 비용을 포함해 판단한다

계산 확인

도착 전 제외 현재 시각에 아직 도착하지 않은 프로세스를 선택하지 않았는지 확인한다.
선점 시점 SRTF와 RR에서 선점이 일어나는 시각을 간트 차트에 표시한다.
평균 계산 waiting time과 turnaround time을 혼동하지 않았는지 공식으로 다시 계산한다.