🔗 AWS 공식 문서에 따르면,
중앙 처리 장치(CPU)는 서버의 핵심 계산 장치인 하드웨어 구성 요소입니다.
서버 및 기타 스마트 장치는 데이터를 디지털 신호로 변환하고 이에 대한 수학적 연산을 수행합니다.
CPU는 모든 컴퓨팅 장치의 두뇌 역할을 합니다.
운영 체제 및 애플리케이션을 실행하는 데 필요한 모든 컴퓨팅 작업을 처리합니다.
📝 흔히 "프로세서"라고 말하는 것이 바로 CPU이다. 하지만 "프로세스"와 다르다는 점에 주의!
운영체제가 프로세스에게 공정하고 합리적으로 CPU 자원을 배분하는 것을 CPU 스케줄링이라고 한다.
이때 프로세스의 우선순위에 따라 배분 방식이 달라진다.
📌 참고: 프로세스란?
프로세스는 실행 중인 프로그램을 의미한다.
운영체제에 의해 관리되며, 독립적으로 실행되고 자원을 할당받을 수 있는 단위이다.
운영체제는 프로세스들에게 적절히 자원을 분배하여 여러 작업을 수행할 수 있도록 한다.
운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓는 구조체이다.
✔️ 프로세스 상태 관리와 문맥 교환(Context Switching)을 위해 필요하다.
✔️ 프로세스 생성 시 만들어지며, 주기억장치(RAM)에 유지된다.
CPU는 우선순위가 높은 프로세스에 먼저 CPU 자원을 할당한다.
하지만 매번 PCB를 조회하여 우선순위를 결정하면 리소스 낭비가 크기 때문에,
스케줄링 큐(Scheduling Queue)를 사용하여 프로세스를 정렬하고 관리한다.
운영체제가 관리하는 큐:
| 유형 | 설명 | 장점 | 단점 |
|---|---|---|---|
| 선점형 (Preemptive) | 운영체제가 자원을 강제로 뺏어 다른 곳에 할당 가능 | 공정한 분배 | Context Switching으로 오버헤드 발생 가능 |
| 비선점형 (Non-Preemptive) | 프로세스가 자원을 끝까지 사용해야 함 | 오버헤드 없음 | 급한 자원 요청도 대기해야 함 |
🔍 오버헤드(Overhead)란?
어떤 작업을 처리하기 위해 들어가는 간접적인 처리 시간 또는 추가 리소스 소모를 의미한다.
| 알고리즘 | 설명 |
|---|---|
| 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)"이라는 알고리즘을 AWS에서도 본 적이 있다.
그건 바로… 로드 밸런싱! 🤯
👉 하지만 이건 다음 기회에 알아보자! 🚀