FCFS
먼저 도착한 프로세스를 먼저 처리하는 가장 단순한 비선점형 스케줄링 알고리즘입니다.
동작 방식
도착 순서대로 준비 큐에 삽입
→ 앞에서부터 순서대로 실행
예시
| 프로세스 | 도착 시간 | 실행 시간 |
| P1 | 0ms | 24ms |
| P2 | 1ms | 3ms |
| P3 | 2ms | 3ms |
P1[────────────────────────]P2[───]P3[───]
0 24ms 27ms 30ms
대기 시간:
P1 = 0ms
P2 = 23ms
P3 = 25ms
평균 대기 시간 = (0 + 23 + 25) / 3 = 16ms
호위 효과 (Convoy Effect)
긴 작업(P1)이 앞에 오면
→ 짧은 작업(P2, P3)이 오래 기다려야 함
P2, P3는 3ms짜리인데 24ms를 기다려야 함
장단점
| 장점 | 단점 |
| 구현 매우 간단 | 호위 효과 발생 |
| 기아(Starvation) 없음 | 평균 대기 시간 길어질 수 있음 |
| 공평한 순서 보장 | 응답성 낮음 |
| 문맥 교환 비용 적음 | 짧은 작업에 불리 |
다른 알고리즘과 비교
| FCFS | SJF | Round Robin |
| 기준 | 도착 순서 | 실행 시간 | 시간 할당량 |
| 선점 | X | X | O |
| 기아 | X | O | X |
| 호위 효과 | O 발생 | X | X |
| 구현 난이도 | 매우 쉬움 | 보통 | 보통 |
FCFS는 구현이 단순하지만 호위 효과로 인해 성능이 떨어질 수 있어, 실제 OS보다는 프린터 큐, 배치 처리 등 순서가 중요한 환경에서 활용됩니다.