스터디 · 강의 도우미
CPU 스케줄링
High confidenceconceptedited by Cairni · 방금 · AIv1
개요
CPU 스케줄링이란 여러 프로세스가 ready 큐에 대기 중일 때, 어떤 프로세스에 CPU를 줄지 결정하는 운영체제의 핵심 기능이다. 운영체제 과목 개요 (홈)에서 다루는 주요 주제 중 하나이며, 시험 대비 자료에서도 계산 문제 유형으로 자주 등장한다. 운영체제 5주차 — CPU 스케줄링.md
스케줄링의 목표
| 목표 | 설명 |
|---|---|
| CPU 이용률 최대화 | CPU가 유휴 상태 없이 최대한 사용되도록 함 |
| 처리량(Throughput) 향상 | 단위 시간당 완료되는 프로세스 수 증가 |
| 대기시간 최소화 | 프로세스가 ready 큐에서 기다리는 시간 감소 |
| 응답시간 최소화 | 첫 번째 응답이 나오기까지의 시간 감소 |
| 반환시간 최소화 | 프로세스 제출 ~ 완료까지의 전체 시간 감소 |
⚠️ 이 목표들은 서로 상충하기도 한다. 운영체제 5주차 — CPU 스케줄링.md
선점형 vs 비선점형
| 구분 | 설명 | 해당 알고리즘 예 |
|---|---|---|
| 선점형 (Preemptive) | 실행 중인 프로세스를 중단하고 CPU를 회수 가능 | Round Robin, 선점형 SJF |
| 비선점형 (Non-preemptive) | 프로세스가 자발적으로 CPU를 놓을 때까지 대기 | FCFS, 비선점형 SJF |
운영체제 5주차 — CPU 스케줄링.md
주요 알고리즘
자세한 알고리즘 비교는 CPU 스케줄링 알고리즘 비교 페이지를 참고한다.
FCFS (First-Come First-Served)
- 먼저 도착한 순서대로 CPU 할당 (비선점형)
- 장점: 구현이 단순함
- 단점: Convoy Effect — 긴 작업이 앞에 오면 뒤의 짧은 작업들이 모두 대기하여 평균 대기시간이 길어짐
SJF (Shortest-Job-First)
- 다음 CPU burst 시간이 짧은 프로세스 먼저 실행
- 장점: 평균 대기시간이 최소 (최적)
- 단점: 다음 burst 시간 예측이 어려움 / Starvation 위험 (긴 작업이 무한 대기할 수 있음)
Round Robin
- 각 프로세스에 타임 퀀텀(time quantum)을 부여하여 순환 실행 (선점형)
- 장점: 응답성이 좋아 시분할(time-sharing) 시스템에 적합
- 단점: 타임 퀀텀이 너무 작으면 컨텍스트 스위치 오버헤드 증가
Priority Scheduling
- 우선순위가 높은 프로세스에 CPU 먼저 할당
- 단점: Starvation 위험
- 해결책: Aging — 대기 시간이 길어질수록 우선순위를 점진적으로 상승시킴
운영체제 5주차 — CPU 스케줄링.md
알고리즘 흐름 다이어그램
핵심 용어 요약
| 용어 | 한 줄 정의 |
|---|---|
| Convoy Effect | 긴 프로세스 뒤에 짧은 프로세스들이 줄지어 대기하는 현상 |
| Starvation | 낮은 우선순위 프로세스가 무한히 CPU를 할당받지 못하는 현상 |
| Aging | 대기 시간에 비례해 우선순위를 높여 Starvation을 방지하는 기법 |
| 타임 퀀텀 | Round Robin에서 각 프로세스에 주어지는 최대 실행 시간 단위 |
| 컨텍스트 스위치 | CPU가 다른 프로세스로 전환될 때 상태를 저장·복원하는 작업 |
더 많은 용어는 핵심 개념 용어집 (Key Concepts)를 참고한다.