본문 바로가기
Operating Systems

차근차근 시작하는 운영체제 - Part 4: 스케줄링(Scheduling)

by Jimmy_iOS 2024. 12. 30.

안녕하세요! 이번에는 운영체제에서 자주 등장하는 중요한 주제, 스케줄링(Scheduling)에 대해 알아보려고 합니다.

스케줄링은 이름만 들으면 막연히 어렵게 느껴질 수 있지만, 실제로는 매우 논리적이고 이해하기 쉬운 개념입니다.

이번 글에서는 기본적인 스케줄링 개념과 알고리즘을 중심으로 차근차근 설명해 드릴게요.

 

이 글은 제가 읽은 운영체제 책 내용을 정리한 것으로, 여러분께 쉽고 명확하게 전달하는 것을 목표로 하고 있습니다.

이번 글에서 다룰 내용은 다음에 이어질 멀티레벨 피드백 큐(Multi-Level Feedback Queue)를 이해하는 데 중요한 기초가 됩니다.

함께 시작해 볼까요?


스케줄링이란 무엇인가요?

스케줄링은 CPU와 같은 자원을 여러 프로세스에 공정하고 효율적으로 배분하기 위한 정책입니다.

운영체제가 자원을 관리하면서, 어떤 작업을 언제 실행할지 결정하는 역할을 수행하는 것이죠.

현실의 예로 이해하기: 줄서기

스케줄링을 이해하기 위해, 줄서기라는 현실적 예를 들어 보겠습니다:

  • 선착순 줄서기(FIFO): 먼저 도착한 사람이 먼저 서비스를 받습니다.
  • 빠른 처리 우선(SJF): 처리 시간이 짧은 사람부터 서비스를 받습니다.
  • 순환 줄서기(RR): 한 번에 한 사람씩 짧은 시간 동안 서비스를 받고, 다시 맨 뒤로 돌아가서 기다립니다.

운영체제의 스케줄링 알고리즘도 이와 비슷한 방식으로 동작합니다.


스케줄링 메트릭: 성능을 평가하는 기준

스케줄링 정책이 얼마나 효과적인지 평가하기 위해 다양한 메트릭을 사용합니다.

그중 가장 중요한 두 가지는 다음과 같습니다:

 

1. 반환 시간 (Turnaround Time)
작업이 완료되는 데 걸린 총 시간입니다.

2.  응답 시간 (Response Time)
작업이 처음으로 실행되기까지 걸린 시간입니다.


주요 스케줄링 알고리즘 살펴보기

1. First In, First Out (FIFO)

FIFO는 가장 단순한 스케줄링 방식으로, 먼저 도착한 작업을 먼저 실행합니다.

  • 장점: 구현이 쉽고 직관적입니다.

 

  • 단점: 긴 작업이 먼저 실행되면 짧은 작업들이 기다려야 하는 컨보이 효과(Convoy Effect)가 발생할 수 있습니다.

2. Shortest Job First (SJF)

작업 실행 시간이 가장 짧은 작업을 우선적으로 실행합니다.

 

  • 장점: 평균 반환 시간을 최소화할 수 있습니다.

  • 단점: 작업 실행 시간을 사전에 알아야 하기 때문에 현실적으로 구현하기 어렵습니다.

3. Shortest Time-to-Completion First (STCF)

SJF를 비선점형에서 선점형으로 개선한 알고리즘입니다. 새로운 작업이 도착하면 남은 실행 시간이 가장 짧은 작업을 우선 실행합니다.

  • 장점: 반환 시간이 개선됩니다.
  • 단점: 응답 시간이 길어질 수 있습니다.

4. Round Robin (RR)

모든 작업에 고정된 시간 할당(퀀텀)을 부여하고, 이를 순환하면서 실행합니다.

  • 장점: 공정성과 응답 시간을 보장합니다.
  • 단점: 퀀텀이 짧으면 문맥 전환(context switch) 비용이 커질 수 있습니다.

스케줄링 정책의 트레이드오프

스케줄링 알고리즘은 반환 시간, 응답 시간, 공정성 사이에서 트레이드오프가 발생합니다:

  • 반환 시간 최적화: 짧은 작업을 우선적으로 처리(SJF)하면 긴 작업이 차별받을 수 있습니다.
  • 응답 시간 최적화: 공정하게 모든 작업을 분배(RR)하면 반환 시간이 증가할 수 있습니다.

정리하며

운영체제에서 스케줄링은 자원을 효율적으로 배분하고 성능을 최적화하는 데 핵심적인 역할을 합니다.

이번 글에서는 FIFO, SJF, STCF, RR 같은 기초적인 알고리즘과 개념을 살펴보았습니다.

 

다음 글에서는 멀티레벨 피드백 큐(MLFQ)라는 스케줄링 알고리즘을 통해,

앞서 살펴본 알고리즘의 한계를 극복하는 방법을 알아보겠습니다.

멀티레벨 피드백 큐는 짧은 작업과 긴 작업을 동적으로 처리하며, 공정성과 효율성을 동시에 고려하는 강력한 알고리즘입니다.


다음 글에서 만나요!

이 글은 Operating Systems: Three Easy Pieces를 참고하여 작성되었습니다.