⚡ 운영체제 - 스케줄링 알고리즘
⚡ 운영체제 - 스케줄링 알고리즘
🔹 프로세스 스케줄링이란?
- 운영체제는 동시에 여러 프로세스를 실행할 수 없다.
- 따라서
CPU
를 어떤 프로세스에게 얼마 동안 할당할지 결정해야 한다. - 이때 사용하는 정책을
CPU
스케줄링 알고리즘이라고 한다. - 목표는 다음과 같다.
CPU
이용률 극대화- 응답 시간 최소화
- 대기 시간 및 반환 시간 최소화
- 공정성 보장
🔹 비선점 스케줄링(Non-preemptive Scheduling
)
CPU
를 한 번 할당받은 프로세스는 스스로 종료하거나I/O
요청 전까지CPU
를 점유함- 문맥 교환이 적어 오버헤드는 낮지만, 긴 작업이 있으면 응답 시간이 길어질 수 있음
▫️ FCFS
(First-Come, First-Served
)
- 먼저 도착한 프로세스부터 처리
- 구현이 단순하지만, 짧은 작업이 뒤로 밀릴 수 있음
▫️ SJF
(Shortest Job First
)
- 실행 시간이 가장 짧은 작업부터 처리
- 이론 상 평균 대기 시간 최소화
- 단점은 작업 시간을 정확히 예측하기 어려움
🔹 선점 스케줄링 (Preemptive Scheduling
)
- 프로세스가
CPU
를 점유 중이더라도, 우선순위가 더 높은 작업이 오면 선점 가능
▫️ Round Robin
(RR
)
- 각 프로세스에 동일한 시간 할당량(타임 퀀텀)을 부여
- 짧은 응답 시간 확보에 유리
- 타임 퀀텀이 너무 작으면 문맥 교환 오버헤드가 커짐
▫️ 우선순위 스케줄링 (Priority Scheduling
)
- 우선순위가 높은 프로세스 먼저 실행
- 우선순위는 정적으로 지정하거나 동적으로 조절 가능
- 낮은 우선순위 프로세스가 무한정 대기할 수 있는 기아(
Starvation
) 문제가 존재함
🔹 멀티레벨 큐 스케줄링 (Multilevel Queue
)
- 프로세스를 여러 등급의 큐로 분리하고, 각 큐에 다른 스케줄링 알고리즘 적용
- 예: 실시간 큐는
RR
, 사용자 큐는FCFS
- 큐 간에도 우선순위가 존재
🔹 주요 성능 지표
- 대기 시간:
Ready Queue
에서 기다린 시간 - 반환 시간: 요청
→
완료까지의 전체 시간 - 응답 시간: 요청
→
최초 CPU 할당까지의 시간 - 문맥 교환 횟수: 스레드/프로세스 간 전환 빈도
🔹 정리
- 스케줄링 알고리즘은 운영체제 성능과 사용자 응답성에 큰 영향을 미친다.
- 상황에 따라 어떤 전략이 더 적합한지 판단할 수 있어야 한다.
- 특히
RR
,SJF
,Priority
,Multilevel Queue
는 각 방식의 장단점을 정확히 파악해야 한다.
This post is licensed under CC BY 4.0 by the author.