Post

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

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

🔹 프로세스 스케줄링이란?

  • 운영체제는 동시에 여러 프로세스를 실행할 수 없다.
  • 따라서 CPU를 어떤 프로세스에게 얼마 동안 할당할지 결정해야 한다.
  • 이때 사용하는 정책을 CPU 스케줄링 알고리즘이라고 한다.
  • 목표는 다음과 같다.
    1. CPU 이용률 극대화
    2. 응답 시간 최소화
    3. 대기 시간 및 반환 시간 최소화
    4. 공정성 보장

🔹 비선점 스케줄링(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.