전체 목록
운영체제Hard#203

CPU 스케줄링 알고리즘의 목표와 대표 방식을 설명해주세요.

#운영체제#Scheduling#CPU#성능

답변 포인트

응답 시간, 처리량, 공정성를 기준으로 정의, 장점, 한계, 예시를 함께 설명해보세요.

정답 및 해설

빠른 요약

CPU 스케줄링은 응답 시간, 처리량, 공정성의 균형을 맞춥니다. FCFS, SJF, Round Robin 등은 각기 대기 시간과 응답성에서 장단점이 있습니다.

CPU 스케줄링은 여러 프로세스나 스레드 중 어떤 작업에 CPU를 할당할지 결정하는 운영체제의 정책입니다. 목표는 단순히 “빨리 실행”이 아니라 처리량, 응답성, 공정성, 데드라인, 컨텍스트 스위칭 비용 사이의 균형입니다.

스케줄링의 주요 목표

목표의미예시
CPU 이용률CPU가 놀지 않게 유지서버 배치 작업
처리량단위 시간당 완료 작업 수 증가빌드 서버, 워커
응답 시간사용자 요청에 빠르게 반응웹 서버, UI
대기 시간큐에서 오래 기다리지 않게 함다중 사용자 시스템
공정성특정 작업이 굶지 않게 함공유 서버
데드라인정해진 시간 안에 완료실시간 제어

대표 알고리즘

FCFS(First-Come, First-Served)

먼저 온 작업을 먼저 실행합니다. 구현은 쉽지만 긴 작업이 앞에 있으면 짧은 작업들이 오래 기다리는 convoy effect가 발생합니다.

SJF / SRTF

실행 시간이 짧은 작업을 우선합니다. 평균 대기 시간이 줄어들지만 실제 실행 시간을 미리 알기 어렵고, 긴 작업이 계속 밀릴 수 있습니다.

Round Robin

각 작업에 time quantum을 주고 번갈아 실행합니다. 응답성이 좋아 대화형 시스템에 적합하지만, quantum이 너무 작으면 컨텍스트 스위칭 비용이 커지고 너무 크면 FCFS처럼 됩니다.

Text
P1(8ms), P2(4ms), P3(3ms), quantum=2ms
P1 -> P2 -> P3 -> P1 -> P2 -> P3 -> P1 -> P1 ...

Priority Scheduling

우선순위가 높은 작업을 먼저 실행합니다. 운영체제 커널 작업이나 실시간 작업에 유용하지만, 낮은 우선순위 작업이 굶지 않도록 aging 기법이 필요합니다.

Multilevel Feedback Queue

작업의 행동에 따라 큐를 이동시킵니다. 짧고 I/O 중심인 작업은 높은 우선순위를 유지하고, CPU를 오래 쓰는 작업은 낮은 큐로 내려갑니다. 범용 OS에서 많이 쓰이는 아이디어입니다.

실무 관점

애플리케이션 개발자는 OS 스케줄러를 직접 구현하지 않지만 영향을 자주 받습니다.

  • CPU-bound 작업을 웹 요청 스레드에서 오래 실행하면 전체 응답성이 떨어집니다.
  • 스레드를 많이 만든다고 CPU가 늘어나지 않습니다. 오히려 컨텍스트 스위칭이 증가합니다.
  • 컨테이너의 CPU quota가 낮으면 스케줄링 지연이 p99 latency로 나타납니다.
  • 우선순위 조정(nice, cgroup cpu.shares)은 배치와 온라인 트래픽을 분리할 때 유용합니다.

면접 답변 포인트

“스케줄링은 CPU를 누구에게 언제 줄지 결정하는 정책이며, 알고리즘마다 평균 대기 시간, 응답성, 공정성, 기아 가능성의 trade-off가 다릅니다. Round Robin은 응답성, SJF는 평균 대기 시간, Priority는 중요도 반영, MLFQ는 실제 시스템의 혼합 워크로드에 대응하기 위한 방식입니다.”라고 정리하면 좋습니다.

관련 질문

같은 카테고리/태그 기준