할당 대상에 따른 스케줄링 분류
프로세스 스케줄링은 자원의 할당 대상에 따라 크게 세 가지로 분류할 수 있습니다.
장기 스케줄링(Long-Term Scheduling)
-
시스템에 새로운 프로세스를 생성할 때 결정되는 스케줄링 방식입니다.
-
작업(Job) 스케줄링이라고도 불리며, 어떤 프로세스를 실행할 것인지 결정합니다.
-
주요 목표는 다중 프로그래밍의 정도를 제어하는 것입니다.
-
빈도가 낮고, 주로 배치 처리 시스템에서 사용됩니다.
중기 스케줄링(Mid-Term Scheduling)
-
실행 중이지만 대기 중인 프로세스를 일시적으로 메모리에서 제거하거나 다시 불러오는 스케줄링 방식입니다.
-
스왑(Swapping) 기법을 활용하여 메모리 활용도를 높입니다.
-
운영체제가 메모리 자원의 최적화를 위해 특정 프로세스를 디스크로 내보냈다가 다시 불러오는 역할을 합니다.
단기 스케줄링(Short-Term Scheduling)
-
CPU 스케줄링이라고도 하며, 실행 가능한 프로세스 중에서 어떤 프로세스를 CPU에서 실행할 것인지 결정합니다.
-
매우 빈번하게 실행되며, 운영체제의 성능에 직접적인 영향을 미칩니다.
-
프로세스의 상태가 준비(Ready) 상태에서 실행(Running) 상태로 전환될 때 적용됩니다.
강제 중단 여부에 따른 스케줄링 분류
CPU 스케줄링 기법은 프로세스가 강제로 중단될 수 있는지 여부에 따라 두 가지로 나뉩니다.
비선점(Non-Preemptive) 스케줄링
-
한 프로세스가 CPU를 점유하면, 해당 프로세스가 종료될 때까지 CPU를 다른 프로세스에 양보하지 않습니다.
-
문맥 전환(Context Switching)이 적어 오버헤드가 낮습니다.
종류
- FIFO(First In First Out)
- SJF(Shortest Job First)
- HRN(Highest Response Ratio Next)
선점(Preemptive) 스케줄링
-
실행 중인 프로세스가 CPU를 점유하고 있더라도, 더 높은 우선순위를 가진 프로세스가 등장하면 실행 중인 프로세스가 강제로 중단될 수 있습니다.
-
빠른 응답성과 공정한 자원 분배가 가능하지만, 문맥 전환 비용이 발생합니다.
종류
-
Round Robin(RR)
-
SRT(Shortest Remaining Time)
-
MFQ(Multilevel Feedback Queue)
프로세스 스케줄링 원칙
운영체제는 여러 스케줄링 정책을 조합하여 시스템의 성능을 최적화합니다. 일반적인 스케줄링 원칙은 다음과 같습니다.
-
공정성(Fairness)
-
모든 프로세스가 CPU를 사용할 기회를 공정하게 부여받아야 합니다.
-
-
응답 시간 최소화(Response Time Minimization)
-
대화형(interactive) 시스템에서 사용자 요청에 대한 응답 시간을 최소화해야 합니다.
-
-
처리량 최대화(Throughput Maximization)
-
단위 시간당 실행되는 프로세스 수를 최대화하여 시스템의 생산성을 높입니다.
-
-
CPU 이용률 극대화(CPU Utilization Maximization)
-
CPU가 유휴 상태(idle)로 남아 있는 시간을 최소화하여 성능을 극대화합니다.
-
-
대기 시간 최소화(Waiting Time Minimization)
-
프로세스가 실행을 기다리는 시간을 최소화해야 합니다.
-
-
우선순위 기반 스케줄링(Priority Scheduling)
-
중요한 프로세스는 더 빠르게 실행될 수 있도록 우선순위를 고려하여 스케줄링합니다.
-
-
기아(Starvation) 방지
-
우선순위가 낮은 프로세스가 무한정 대기하지 않도록 보장하는 정책(예: 에이징(Aging) 기법) 적용이 필요합니다.
-
결론
프로세스 스케줄링은 시스템의 성능을 최적화하고 공정성을 유지하기 위해 매우 중요한 역할을 합니다. 장기, 중기, 단기 스케줄링을 적절히 활용하고, 선점형과 비선점형 스케줄링 기법을 상황에 맞게 조합하여 적용하면, 운영체제의 효율성을 극대화할 수 있습니다. 또한, 스케줄링 원칙을 준수하여 응답 시간과 대기 시간을 최소화하고, 시스템의 처리량을 극대화하는 것이 중요합니다.
[…] 프로세스 스케줄링(Process Scheduling) […]