운영체제 | 스케줄링 알고리즘

Faithful Dev·2025년 1월 25일

컴퓨터 공학

목록 보기
22/81

스케줄링 알고리즘 (Scheduling Algorithm)

정의

  • 스케줄링 알고리즘은 운영체제가 CPU와 같은 시스템 자원을 효율적으로 할당하기 위해 사용되는 방법이다.
  • 목표는 자원의 효율적 사용, 처리량(Throughput) 극대화, 응답 시간(Response Time) 최소화, 공정성(Fairness) 확보 등이다.

스케줄링의 유형

  1. 비선점형 스케줄링 (Non-Preemptive):
    • 프로세스가 CPU를 점유하면 작업이 완료될 때까지 다른 프로세스가 강제로 빼앗지 못함.
  2. 선점형 스케줄링 (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는 일반적인 목적으로 설계된 운영체제로, 성능과 편의성이 우선된다.
  • 사용자의 다양한 요구를 충족시키기 위해 설계된 시스템.

특징

  • 멀티태스킹 및 멀티유저: 여러 응용 프로그램을 동시에 실행 가능.
  • 비실시간성: 시간 제약이 있는 작업 처리에는 적합하지 않음.
  • 유연성: 다양한 하드웨어와 응용 프로그램을 지원.

예시

  • Windows, Linux, macOS.

우선순위 기반 스케줄러 (Priority-Based Scheduler)

정의

  • 각 프로세스에 우선순위를 할당하고, 우선순위가 높은 프로세스부터 실행하는 스케줄링 알고리즘.

특징

  • 선점형/비선점형: 우선순위에 따라 프로세스를 중단하고 실행하거나, 기존 프로세스가 끝날 때까지 기다림.
  • 동적 우선순위: 실행 도중 우선순위를 변경할 수 있음.

장점

  • 중요한 작업을 빠르게 처리할 수 있음.

단점

  • 기아 현상(Starvation): 우선순위가 낮은 작업이 실행되지 않을 수 있음.
  • 이를 해결하기 위해 노화(Aging) 기법을 사용.

Round Robin 스케줄러

정의

  • Round Robin은 각 프로세스에 일정한 시간(Time Quantum)을 할당하여 순환적으로 처리하는 스케줄링 알고리즘이다.

특징

  • 선점형: 지정된 시간 단위가 지나면 CPU가 다른 프로세스로 전환.
  • 시간 할당이 고정되며, 모든 프로세스가 공평하게 CPU를 사용.

장점

  • 공정성과 응답 시간이 보장.
  • 대화형 시스템에 적합.

단점

  • 시간 할당량(Time Quantum)이 너무 작으면 스위칭 오버헤드 증가.
  • 너무 크면 FCFS처럼 작동.

프로세스 상태 기반 스케줄러

정의

  • 프로세스의 상태(예: 준비 상태, 대기 상태 등)를 기반으로 CPU 할당을 결정하는 스케줄링 알고리즘.

특징

  • 상태 전환 고려: 프로세스의 상태 변화를 실시간으로 모니터링하여 최적의 스케줄링 결정.
  • 효율성 향상: 대기 중인 프로세스와 준비 상태 프로세스 간의 균형을 유지.

예시

  • 입출력 작업이 많은 프로세스를 대기 상태로 보내고, 준비 상태에 있는 프로세스에 CPU 할당.

정리

스케줄러 유형주요 특징
FIFO도착 순서대로 처리, 단순하지만 콘보이 효과 존재.
SJF짧은 작업 우선 처리, 평균 대기 시간 최소화.
RTOS실시간 처리에 초점, 산업/임베디드 시스템용.
GPOS일반 사용자 환경, 성능과 유연성 중점.
우선순위 기반 스케줄러높은 우선순위 작업 우선 처리, 기아 문제 해결 필요.
Round Robin시간 할당량으로 공정성 보장, 대화형 시스템 적합.
상태 기반 스케줄러프로세스 상태를 실시간으로 고려하여 자원 배분.

스케줄링 알고리즘의 선택은 시스템의 목적(실시간성, 성능, 공정성 등)에 따라 달라진다.

profile
Turning Vision into Reality.

0개의 댓글