CPU 스케줄링
기술노트
⏱️ CPU 스케줄링 (FCFS, SJF, RR 등)
CPU 스케줄링은 운영체제(OS)가 CPU를 효율적으로 사용하기 위해, 준비 상태(Ready State)에 있는 여러 프로세스(또는 스레드) 중에서 어떤 프로세스에게 CPU를 할당할지 결정하는 활동입니다. CPU는 한 번에 하나의 프로세스만 실행할 수 있으므로, 스케줄링은 CPU 자원을 공정하고 효율적으로 분배하는 핵심적인 역할을 합니다.
📚 CPU 스케줄링 알고리즘의 종류
- FCFS (First-Come, First-Served) : 먼저 도착한 프로세스에게 CPU를 먼저 할당하는 가장 간단한 방식입니다. (비선점형)
> * 장점: 구현이 간단하고 공정합니다. > * 단점: 긴 작업이 먼저 도착하면 뒤의 짧은 작업들이 오래 기다려야 하는 '호그 현상(Convoy Effect)'이 발생할 수 있습니다.
- SJF (Shortest Job First) : 실행 시간이 가장 짧은 프로세스에게 CPU를 먼저 할당하는 방식입니다. (비선점형 또는 선점형 - SRTF)
> * 장점: 평균 대기 시간을 최소화하는 최적의 알고리즘입니다. > * 단점: 프로세스의 실행 시간을 미리 알 수 없다는 현실적인 문제가 있습니다. 긴 작업이 계속 밀리는 '기아 현상(Starvation)'이 발생할 수 있습니다.
- RR (Round Robin) : 각 프로세스에게 동일한 시간 할당량(Time Slice / Quantum)을 부여하고, 이 시간 동안만 CPU를 사용하게 한 후, 시간이 만료되면 준비 큐의 맨 뒤로 보내는 방식입니다. (선점형)
> * 장점: 모든 프로세스가 공정하게 CPU를 할당받아 응답 시간이 빠릅니다. 시분할 시스템에 적합합니다. > * 단점: 시간 할당량이 너무 작으면 문맥 교환(Context Switching) 오버헤드가 커지고, 너무 크면 FCFS와 유사해집니다.
- 우선순위 스케줄링 (Priority Scheduling) : 각 프로세스에 우선순위를 부여하고, 가장 높은 우선순위를 가진 프로세스에게 CPU를 먼저 할당하는 방식입니다. (비선점형 또는 선점형)
> * 장점: 중요한 작업을 먼저 처리할 수 있습니다. > * 단점: 낮은 우선순위의 프로세스가 영원히 실행되지 못하는 '무한 봉쇄(Indefinite Blocking)' 또는 '기아 현상'이 발생할 수 있습니다. (해결책: 에이징, Aging)
💡 정보처리기사 핵심 Point
- CPU 스케줄링의 목표는 CPU 이용률 극대화, 처리량 증대, 응답 시간 최소화, 대기 시간 최소화, 공정성 보장 등입니다.
- 정보처리기사 시험에서는 각 스케줄링 알고리즘의 개념, 특징, 장단점, 그리고 특정 상황에서의 동작 방식을 묻는 문제가 자주 출제됩니다.
- 특히 FCFS, SJF, RR, 우선순위 스케줄링은 반드시 정확히 이해해야 합니다.