CPU 스케줄링은 운영체제에서 프로세스가 CPU를 사용할 수 있도록 할당하는 메커니즘을 말한다.
CPU는 한 번에 하나의 프로세스만 실행할 수 있기 때문에,
여러 프로세스가 실행 대기 중일 때 운영체제는 적절한 알고리즘을 사용하여 어떤 프로세스를 먼저 실행할지 결정해야 한다.
📌 스케줄러 종류
운영체제에는 다양한 스케줄러가 있다.
CPU 스케줄링과 직접적으로 관련된 것은 단기 스케줄러다.
🔹 장기 스케줄러( Long-term Scheduler )
- 어떤 프로세스를 실행할지 결정하여 준비( Ready )큐로 이동시킨다.
- 시스템의 전체적인 프로세스 수를 조절하여 CPU와 메모리 자원의 균형을 맞춘다.
🔹 단기 스케줄러( Short-term Scheduler )
- CPU를 어떤 프로세스에 할당할지를 결정한다.
- 실행 가능한 프로세스 중 하나를 선택하여 CPU를 할당한다.
🔹 중기 스케줄러( Medium-term Scheduler )
- 실행 중인 프로세스를 일시 중단( Suspend )하거나 다시 활성화( Resume)하는 역할을 담당한다.
- 메모리 관리 및 스왑( Swap ) 관련 작업을 수행한다.
📌 CPU 스케줄링 방식
CPU 스케줄링 방식은 크게 비선점( Non-preemptive )과 선점( Preemptive ) 방식으로 나뉜다.
- 비선점( Non-preemptive ) 방식: 프로세스가 CPU를 할당받으면, 자발적으로 종료하거나 I/O 요청을 하기 전까지 CPU를 다른 프로세스가 사용할 수 없다.
- 선점( Preemptive ) 방식: 특정 조건이 발생하면 현재 실행중인 프로세스를 중단하고 CPU를 다른 프로세스에 할당할 수 있다.
📌 주요 CPU 스케줄링 알고리즘
🔹 FCFS( First-Come, First-Served, 선입 선처리 스케줄링 )
- 먼저 도착한 프로세스부터 실행한다.
- 호위 효과( Convoy Effect )가 발생할 수 있다.
- 긴 작업이 짧은 작업을 지연시키는 현상
🔹 SJF( Shortest Job First, 최단 작업 우선 스케줄링 )
- 실행 시간이 가장 짧은 프로세스를 먼저 실행한다.
- 평균 대기 시간을 최소화하지만, 실행 시간을 정확히 예측하기 어렵다.
- 선점형과 비선점형 방식이 있다.
🔹 RR( Round Robin, 라운드 로빈 스케줄링 )
- 각 프로세스가 일정한 시간( Time Quantum ) 동안 CPU를 할당받고, 시간이 지나면 다음 프로세스로 교체된다.
- 타임슬라이스의 시간이 너무 크면 FCFS와 유사해지고, 너무 작으면 문맥 교환 오버헤드가 증가한다.
'CS > 혼공컴운' 카테고리의 다른 글
[CS] 가상 메모리 (0) | 2025.02.13 |
---|---|
[CS] 동기화 (0) | 2025.02.12 |
[CS] 스레드 (0) | 2025.02.11 |
[CS] 프로세스 계층 구조 (0) | 2025.02.11 |
[CS] 프로세스 상태 (0) | 2025.02.11 |