![[2일차] 2025 정보처리산업기사 운영체제 - 비선점(FCFS=FIFO, SJF) 1 정보처리산업기사 운영체제](https://i0.wp.com/jupocket.com/wp-content/uploads/2025/05/image.png?resize=492%2C492&ssl=1)
정보처리산업기사 실기 과목 중 운영체제 파트에서는 프로세스 스케줄링(Process Scheduling) 의 개념과 계산이 핵심이다.
이번 학습에서는 스케줄링 기법 중 비선점형(Non-preemptive Scheduling) 방식을 중심으로 정리했다. 비선점형 스케줄링은 한 프로세스가 CPU를 할당받으면 스스로 CPU를 반납할 때까지 다른 프로세스가 대기하는 방식이다.
즉, 운영체제가 강제로 CPU를 회수하지 않는다. 이 방식은 단순하고 구현이 쉬운 장점이 있지만, 호위 효과(Convoy Effect) 라는 단점이 존재한다. 즉, CPU 사용 시간이 긴 프로세스가 앞에 있으면 뒤의 모든 프로세스가 오래 기다리게 된다.
이번 학습에서는 대표적인 두 기법인 FCFS(First Come First Served) = FIFO(First In First Out) 와 SJF(Shortest Job First) 의 원리와 계산법을 비교한다.
정보처리산업기사 1개월 단기 과정 스케줄을 확인하고 싶은분들은 아래글을 이용바랍니다.
1. 간트 차트(Gantt Chart)
스케줄링 문제를 풀 때 가장 먼저 떠올려야 하는 것이 간트 차트이다.
간트 차트는 CPU가 각 프로세스를 언제 실행했는지를 시간 순서대로 시각화한 막대 그래프다.
![[2일차] 2025 정보처리산업기사 운영체제 - 비선점(FCFS=FIFO, SJF) 2 정보처리산업기사 [2일차] 2025 정보처리산업기사 운영체제 - 비선점(FCFS=FIFO, SJF)](https://i0.wp.com/jupocket.com/wp-content/uploads/2025/10/image-2.png?resize=478%2C124&ssl=1)
위 예시는 CPU가
0~5초에는 P1,
5~8초에는 P2,
8~12초에는 P3,
12~14초에는 P4,
14~20초에는 P5를 실행했음을 보여준다.
이처럼 간트 차트는 문제를 구조적으로 파악하고 계산을 단순화할 수 있게 해준다.
2. 문제 데이터
| 프로세스 | 도착시간(A) | 실행시간(B) |
|---|---|---|
| P1 | 0 | 5 |
| P2 | 2 | 3 |
| P3 | 4 | 4 |
| P4 | 5 | 2 |
| P5 | 7 | 6 |
정의
- 완료시간(C): 프로세스 실행이 끝난 시각
- 반환시간(T) = C − A
- 대기시간(W) = T − B
- 비선점형에서는 응답시간 = 대기시간
3. FCFS(First Come First Served)
개념
FCFS는 선입선출(FIFO, First In First Out) 방식으로, 도착 순서대로 프로세스를 처리한다.
큐(Queue) 자료구조의 동작과 동일하며, 한 프로세스가 CPU를 사용하는 동안 다른 프로세스는 대기한다.
간트 차트
![[2일차] 2025 정보처리산업기사 운영체제 - 비선점(FCFS=FIFO, SJF) 3 정보처리산업기사 [2일차] 2025 정보처리산업기사 운영체제 - 비선점(FCFS=FIFO, SJF)](https://i0.wp.com/jupocket.com/wp-content/uploads/2025/10/image.png?resize=470%2C117&ssl=1)
계산표
| 프로세스 | A | B | C | T=C−A | W=T−B |
|---|---|---|---|---|---|
| P1 | 0 | 5 | 5 | 5 | 0 |
| P2 | 2 | 3 | 8 | 6 | 3 |
| P3 | 4 | 4 | 12 | 8 | 4 |
| P4 | 5 | 2 | 14 | 9 | 7 |
| P5 | 7 | 6 | 20 | 13 | 7 |
- 평균 반환시간 = (5+6+8+9+13) / 5 = 8.2
- 평균 대기시간 = (0+3+4+7+7) / 5 = 4.2
4. SJF(Shortest Job First, 비선점형)
개념
SJF는 CPU 실행 시간이 가장 짧은 프로세스를 우선 실행하는 방식이다.
실행 도중에는 교체되지 않으며, 현재 시점까지 도착한 프로세스 중 실행 시간이 가장 짧은 것을 선택한다.
짧은 작업을 먼저 처리하므로 평균 대기시간이 줄어드는 장점이 있지만,
긴 작업이 계속 밀리는 기아(Starvation) 문제가 발생할 수 있다.
선택 과정
- t=0 → P1 실행
- t=5 → {P2(3), P3(4), P4(2)} 중 P4 선택
- t=7 → {P2(3), P3(4), P5(6)} 중 P2 선택
- t=10 → {P3(4), P5(6)} 중 P3 선택
- t=14 → 남은 P5 실행
간트 차트
![[2일차] 2025 정보처리산업기사 운영체제 - 비선점(FCFS=FIFO, SJF) 4 정보처리산업기사 [2일차] 2025 정보처리산업기사 운영체제 - 비선점(FCFS=FIFO, SJF)](https://i0.wp.com/jupocket.com/wp-content/uploads/2025/10/image-1.png?resize=470%2C113&ssl=1)
계산표
| 프로세스 | A | B | C | T=C−A | W=T−B |
|---|---|---|---|---|---|
| P1 | 0 | 5 | 5 | 5 | 0 |
| P2 | 2 | 3 | 10 | 8 | 5 |
| P3 | 4 | 4 | 14 | 10 | 6 |
| P4 | 5 | 2 | 7 | 2 | 0 |
| P5 | 7 | 6 | 20 | 13 | 7 |
- 평균 반환시간 = (5+8+10+2+13) / 5 = 7.6
- 평균 대기시간 = (0+5+6+0+7) / 5 = 3.6
5. 더 쉬운 계산법
간트 차트만 정확히 그리면 대부분의 계산은 자동으로 해결된다.
다음 세 가지 규칙을 기억하면 된다.
- 반환시간(T) = 완료시간(C) − 도착시간(A)
- 대기시간(W) = 반환시간(T) − 실행시간(B)
- 항상 T = W + B 가 성립
또한 비선점형에서는 응답시간 = 대기시간이므로 별도 계산이 필요 없다.
6. 비교 요약
| 항목 | FCFS(FIFO) | SJF |
|---|---|---|
| 평균 대기시간 | 4.2 | 3.6 |
| 평균 반환시간 | 8.2 | 7.6 |
| 장점 | 단순, 공정 | 평균 대기시간 최소화 |
| 단점 | 호위 효과 발생 | 긴 작업의 기아 문제 |
SJF는 전체 효율이 높은 방식이지만, 모든 시스템에 적합한 것은 아니다.
실제 운영체제에서는 두 방식을 혼합하거나, 우선순위·라운드로빈 등의 기법과 함께 사용해 CPU 자원을 조정한다.
다음 학습
다음 학습에서는 선점형 스케줄링(Preemptive Scheduling) 을 다룬다. SRTF(Shortest Remaining Time First) 와 라운드로빈(Round Robin) 알고리즘을 비교하며, 타임 슬라이스(Time Quantum)에 따른 CPU 교체 과정을 단계별로 계산할 예정이다.