CPU Scheduling 알고리즘 핵심 정리
CPU Scheduling이란 다중 프로세스 환경에서 여러 프로세스들이 CPU를 공유할 때, 어떤 프로세스에 얼마나 CPU를 할당할지에 대한 순서를 결정하는 운영체제의 핵심 메커니즘인데요. CPU는 한 번에 하나의 작업만 처리할 수 있기 때문에, 효율적인 스케줄링이 시스템 성능에 매우 큰 영향을 주게 됩니다.
스케줄링 성능 기준
어떤 스케줄링 방식이 좋은지 나쁜지에 대해서는, 다음과 같은 기준을 통해 판단하게 됩니다.
- Waiting Time: CPU를 기다리는 시간
- Turnaround Time: 프로세스 요청이 처리되는 총 시간
- Response Time: 요청 후 첫 반응까지 걸리는 시간
- Throughput: 단위 시간당 처리된 작업 수 (클수록 좋음)
이러한 지표들을 최소화(또는 최대화)하는 것이 각 스케줄링 알고리즘의 목표입니다.
주요 CPU Scheduling 알고리즘
알고리즘 | 설명 | 특징 |
---|---|---|
FCFS (First Come First Serve) |
도착한 순서대로 처리 | 간단하지만 Convoy Effect 발생 |
SJF (Shortest Job First) |
CPU burst가 짧은 순서대로 처리 | 이론상 평균 대기 시간 최소화, 예측이 어려움 |
Priority Scheduling | 우선순위가 높은 프로세스 먼저 실행 | Starvation 발생 가능 → 해결: Aging |
Round Robin | Time Quantum만큼 순환 처리 | 공정성 확보, 응답시간 향상 |
Multilevel Queue | 프로세스 성격에 따라 큐 분리 | 큐 간 우선순위 존재, 유연성 부족 |
Multilevel Feedback Queue | 동적으로 우선순위 조정 | 복잡하지만 유연하고 효율적 |
실제 운영체제에서의 예시
- Windows: Round Robin 기반 + Priority Scheduling
- Linux: Completely Fair Scheduler (CFS)
마치면서
각 스케줄링 알고리즘은 특정 상황에서 더 적합하며, 응답 시간, 대기 시간, 처리량 등의 목표에 따라 선택이 달라집니다. 운영체제는 이 알고리즘을 통해 CPU 자원을 효율적으로 분배하고, 사용자 경험을 향상시키지요. 곧 올바른 스케줄링은 단순한 선택이 아니라, 시스템의 운명을 바꾸는 결정이라고 할 수 있습니다.
'크래프톤 정글 > CS기초(키워드, 개념정리)' 카테고리의 다른 글
[CS기초] Race Condition, 동시성 버그의 핵심 원인 (0) | 2025.05.09 |
---|---|
[CS기초] Semaphore와 Mutex, 동시성 제어의 핵심 도구 (0) | 2025.05.09 |
[CS기초] Process와 Thread 핵심 정리 (0) | 2025.05.09 |
[중간정리] 8주차 - HTTP, 파일 디스크립터, TCP/UDP, C언어(포인터) (0) | 2025.05.06 |
[CS기초] 8주차 개념 정리 (1) | 2025.05.06 |