스케줄링 알고리즘 (Scheduling Algorithm)
정의
- 스케줄링 알고리즘은 운영체제가 CPU와 같은 시스템 자원을 효율적으로 할당하기 위해 사용되는 방법이다.
- 목표는 자원의 효율적 사용, 처리량(Throughput) 극대화, 응답 시간(Response Time) 최소화, 공정성(Fairness) 확보 등이다.
스케줄링의 유형
- 비선점형 스케줄링 (Non-Preemptive):
- 프로세스가 CPU를 점유하면 작업이 완료될 때까지 다른 프로세스가 강제로 빼앗지 못함.
- 선점형 스케줄링 (Preemptive):
- 우선순위가 높은 프로세스가 도착하면 현재 실행 중인 프로세스를 중단하고 CPU를 차지.
FIFO 스케줄러 (First In, First Out)
정의
- FIFO(또는 FCFS: First Come, First Serve)는 도착한 순서대로 프로세스를 처리하는 스케줄링 알고리즘이다.
특징
- 단순하고 공정: 실행 순서를 예측하기 쉬움.
- 비선점형: 한 프로세스가 실행되면 끝날 때까지 CPU를 점유.
장점
단점
- 콘보이 효과(Convoy Effect): CPU 시간을 많이 요구하는 프로세스가 앞에 있을 경우 다른 프로세스가 오래 대기.
- 평균 대기 시간이 길어질 수 있음.
SJF 스케줄러 (Shortest Job First)
정의
- SJF는 실행 시간이 가장 짧은 프로세스를 먼저 실행하는 스케줄링 알고리즘이다.
특징
- 비선점형 방식: 프로세스가 실행되면 완료될 때까지 중단되지 않음.
- 선점형 변형: 남은 시간이 가장 짧은 프로세스를 선택하는 SRTF(Shortest Remaining Time First)도 있음.
장점
단점
- 기아 현상(Starvation): 긴 작업이 계속해서 뒤로 밀릴 수 있음.
- 실행 시간을 미리 예측하기 어려움.
RTOS (Real-Time Operating System)
정의
- RTOS는 정해진 시간 안에 작업을 처리하는 것이 중요한 시스템에서 사용하는 운영체제이다.
- 실시간 응답이 필요하며, 주로 산업 제어, 임베디드 시스템, 로봇 등에 사용된다.
특징
- 실시간성: 엄격한 시간 제약을 준수.
- 예측 가능성: 스케줄링과 작업 완료 시간을 정확히 계산 가능.
- 우선순위 기반 스케줄링: 긴급 작업을 우선적으로 처리.
예시
- 항공기 제어 시스템, 의료 장비, IoT 기기.
GPOS (General-Purpose Operating System)
정의
- GPOS는 일반적인 목적으로 설계된 운영체제로, 성능과 편의성이 우선된다.
- 사용자의 다양한 요구를 충족시키기 위해 설계된 시스템.
특징
- 멀티태스킹 및 멀티유저: 여러 응용 프로그램을 동시에 실행 가능.
- 비실시간성: 시간 제약이 있는 작업 처리에는 적합하지 않음.
- 유연성: 다양한 하드웨어와 응용 프로그램을 지원.
예시
우선순위 기반 스케줄러 (Priority-Based Scheduler)
정의
- 각 프로세스에 우선순위를 할당하고, 우선순위가 높은 프로세스부터 실행하는 스케줄링 알고리즘.
특징
- 선점형/비선점형: 우선순위에 따라 프로세스를 중단하고 실행하거나, 기존 프로세스가 끝날 때까지 기다림.
- 동적 우선순위: 실행 도중 우선순위를 변경할 수 있음.
장점
단점
- 기아 현상(Starvation): 우선순위가 낮은 작업이 실행되지 않을 수 있음.
- 이를 해결하기 위해 노화(Aging) 기법을 사용.
Round Robin 스케줄러
정의
- Round Robin은 각 프로세스에 일정한 시간(Time Quantum)을 할당하여 순환적으로 처리하는 스케줄링 알고리즘이다.
특징
- 선점형: 지정된 시간 단위가 지나면 CPU가 다른 프로세스로 전환.
- 시간 할당이 고정되며, 모든 프로세스가 공평하게 CPU를 사용.
장점
- 공정성과 응답 시간이 보장.
- 대화형 시스템에 적합.
단점
- 시간 할당량(Time Quantum)이 너무 작으면 스위칭 오버헤드 증가.
- 너무 크면 FCFS처럼 작동.
프로세스 상태 기반 스케줄러
정의
- 프로세스의 상태(예: 준비 상태, 대기 상태 등)를 기반으로 CPU 할당을 결정하는 스케줄링 알고리즘.
특징
- 상태 전환 고려: 프로세스의 상태 변화를 실시간으로 모니터링하여 최적의 스케줄링 결정.
- 효율성 향상: 대기 중인 프로세스와 준비 상태 프로세스 간의 균형을 유지.
예시
- 입출력 작업이 많은 프로세스를 대기 상태로 보내고, 준비 상태에 있는 프로세스에 CPU 할당.
정리
| 스케줄러 유형 | 주요 특징 |
|---|
| FIFO | 도착 순서대로 처리, 단순하지만 콘보이 효과 존재. |
| SJF | 짧은 작업 우선 처리, 평균 대기 시간 최소화. |
| RTOS | 실시간 처리에 초점, 산업/임베디드 시스템용. |
| GPOS | 일반 사용자 환경, 성능과 유연성 중점. |
| 우선순위 기반 스케줄러 | 높은 우선순위 작업 우선 처리, 기아 문제 해결 필요. |
| Round Robin | 시간 할당량으로 공정성 보장, 대화형 시스템 적합. |
| 상태 기반 스케줄러 | 프로세스 상태를 실시간으로 고려하여 자원 배분. |
스케줄링 알고리즘의 선택은 시스템의 목적(실시간성, 성능, 공정성 등)에 따라 달라진다.