FCFS 스케줄링

FCFS 표현 방식: 단순하지만 convoy effect를 그대

FCFS는 먼저 도착한 프로세스가 먼저 CPU를 받는 비선점 스케줄링입니다. 구현은 쉽고 공정해 보이지만 긴 CPU burst 하나가 뒤의 짧은 작업을 모두 기다리게 만들어 평균 대기 시간이 크게 나빠질 수 있습니다.

01

도착 순서로 큐에 넣는다

ready queue에 먼저 온 프로세스가 앞에 놓이고 CPU를 받을 때까지 기다립니다.

queue
02

CPU를 끝까지 쓴다

비선점 방식이므로 실행 중인 프로세스가 끝나거나 I/O를 요청할 때까지 CPU를 유지합니다.

non-preemptive
03

대기 시간이 누적된다

앞쪽의 긴 작업 때문에 뒤의 짧은 작업들이 모두 묶여 convoy effect가 생깁니다.

convoy
04

비교 기준을 세운다

SJF, Round Robin과 평균 대기 시간, 응답 시간, 처리량을 비교할 때 기준선으로 삼습니다.

baseline
Waiting time
앞 작업의 burst 합이 뒤 작업 대기 시간이 됨 짧은 작업이 뒤에 있으면 체감 응답이 크게 나빠집니다.
delay
Turnaround
도착부터 완료까지 걸린 전체 시간 긴 작업이 먼저 오면 전체 평균이 흔들립니다.
complete
Convoy effect
긴 CPU 작업 뒤에 짧은 작업들이 줄줄이 대기 I/O 장치도 함께 놀 수 있어 시스템 전체 이용률이 낮아집니다.
pathology

선점 여부 · burst 순서 · 실전성 점검

선점 여부 FCFS는 time slice가 없으므로 실행 중 강제로 빼앗지 않습니다.
burst 순서 같은 작업 집합도 도착 순서가 바뀌면 평균 대기 시간이 크게 달라집니다.
실전성 단독 사용보다 다른 알고리즘을 설명하는 비교 기준으로 읽습니다.