CPU 스케줄링을 알아보자

Minseo Lim·2025년 3월 13일

🖥️ CPU란 무엇일까?

💡 AWS 피셜 CPU란?

🔗 AWS 공식 문서에 따르면,

중앙 처리 장치(CPU)는 서버의 핵심 계산 장치인 하드웨어 구성 요소입니다.
서버 및 기타 스마트 장치는 데이터를 디지털 신호로 변환하고 이에 대한 수학적 연산을 수행합니다.
CPU는 모든 컴퓨팅 장치의 두뇌 역할을 합니다.
운영 체제 및 애플리케이션을 실행하는 데 필요한 모든 컴퓨팅 작업을 처리합니다.

📝 흔히 "프로세서"라고 말하는 것이 바로 CPU이다. 하지만 "프로세스"와 다르다는 점에 주의!


⚙️ CPU 스케줄링이란?

운영체제가 프로세스에게 공정하고 합리적으로 CPU 자원을 배분하는 것을 CPU 스케줄링이라고 한다.
이때 프로세스의 우선순위에 따라 배분 방식이 달라진다.

📌 참고: 프로세스란?
프로세스는 실행 중인 프로그램을 의미한다.
운영체제에 의해 관리되며, 독립적으로 실행되고 자원을 할당받을 수 있는 단위이다.
운영체제는 프로세스들에게 적절히 자원을 분배하여 여러 작업을 수행할 수 있도록 한다.

📜 PCB(Process Control Block)란?

운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓는 구조체이다.
✔️ 프로세스 상태 관리와 문맥 교환(Context Switching)을 위해 필요하다.
✔️ 프로세스 생성 시 만들어지며, 주기억장치(RAM)에 유지된다.


📌 스케줄링의 우선순위

CPU는 우선순위가 높은 프로세스에 먼저 CPU 자원을 할당한다.
하지만 매번 PCB를 조회하여 우선순위를 결정하면 리소스 낭비가 크기 때문에,
스케줄링 큐(Scheduling Queue)를 사용하여 프로세스를 정렬하고 관리한다.

운영체제가 관리하는 큐:

  • Ready Queue : CPU를 이용하려는 프로세스 대기열
  • Waiting Queue : 입출력(I/O) 장치를 이용하려는 프로세스 대기열

🔄 선점형 vs 비선점형 스케줄링

유형설명장점단점
선점형 (Preemptive)운영체제가 자원을 강제로 뺏어 다른 곳에 할당 가능공정한 분배Context Switching으로 오버헤드 발생 가능
비선점형 (Non-Preemptive)프로세스가 자원을 끝까지 사용해야 함오버헤드 없음급한 자원 요청도 대기해야 함

🔍 오버헤드(Overhead)란?
어떤 작업을 처리하기 위해 들어가는 간접적인 처리 시간 또는 추가 리소스 소모를 의미한다.


🔢 CPU 스케줄링 알고리즘

🚀 비선점형 스케줄링

알고리즘설명
FCFS (First-Come, First-Served)먼저 도착한 프로세스가 먼저 실행 (FIFO 큐와 유사)
SJF (Shortest Job First)실행 시간이 가장 짧은 작업을 먼저 실행
HRRN (Highest Response Ratio Next)응답률을 계산해 가장 높은 프로세스부터 실행
응답률 = (대기 시간 + 실행 시간) / 실행 시간

🔄 선점형 스케줄링

알고리즘설명
Round-Robin 스케줄링모든 프로세스에게 동일한 시간(Time Quantum)을 할당하여 공정하게 처리
SRTF (Shortest Remaining Time First)SJF의 선점형 버전
남은 실행 시간이 가장 짧은 프로세스부터 실행
Priority Scheduling프로세스에 우선순위(Priority)를 부여하여 높은 우선순위부터 실행
(Starvation 방지를 위해 에이징 기법 사용)

📌 Round-Robin 스케줄링과 로드밸런싱?

근데 여기서 궁금했던 게…
"라운드 로빈(Round Robin)"이라는 알고리즘을 AWS에서도 본 적이 있다.

그건 바로… 로드 밸런싱! 🤯
👉 하지만 이건 다음 기회에 알아보자! 🚀

profile
프로덕트 엔지니어 임민서입니다.

0개의 댓글