본문 바로가기
IT개발/Tech Notes

FCFS vs SJF 스케줄링 알고리즘 비교 – 운영체제 핵심 개념 정리

by 시간기억자 2025. 5. 7.
반응형

운영체제에서 프로세스를 관리할 때 가장 핵심적인 개념 중 하나가 바로 스케줄링이다.
스케줄링이란 CPU가 어떤 프로세스를 먼저 실행할지 결정하는 정책을 의미한다.

가장 기본적인 두 가지 방식은 **FCFS(First Come First Serve)**와 **SJF(Shortest Job First)**이다.
각각 어떤 특징이 있고 어떤 상황에서 유리한지 비교해보자.


1. FCFS (First Come First Serve)

  • 도착한 순서대로 프로세스를 처리하는 방식이다.
  • 일종의 FIFO(First-In First-Out) 방식이다.

특징:

  • 구현이 간단하고 직관적이다.
  • 일관성이 있으며 공정해 보인다.

단점:

  • 긴 작업이 먼저 오면 전체 대기 시간이 늘어날 수 있다.
  • Convoy Effect(호송 효과) 발생

예시:

  • 프로세스 A: 실행시간 10, B: 3, C: 2
  • 도착 순서: A → B → C
  • 전체 대기시간 = 0(A) + 10(B) + 13(C) = 23
  • 평균 대기시간 = 23 / 3 ≈ 7.67

2. SJF (Shortest Job First)

  • 실행 시간이 가장 짧은 프로세스를 먼저 처리하는 방식이다.
  • 비선점형과 **선점형(SRTF)**으로 나뉜다.

특징:

  • 전체 평균 대기시간이 최소화된다.
  • 효율적인 자원 배분이 가능하다.

단점:

  • 긴 작업이 계속 밀릴 수 있다.
  • 실행 시간을 예측하기 어렵다면 사용이 힘들다.

예시:

  • 프로세스 A: 실행시간 10, B: 3, C: 2
  • 실행 순서: C → B → A
  • 전체 대기시간 = 0(C) + 2(B) + 5(A) = 7
  • 평균 대기시간 = 7 / 3 ≈ 2.33

📊 비교 요약표

항목 FCFS SJF
처리 기준 도착 순서 실행 시간
장점 단순하고 구현이 쉬움 평균 대기 시간 최소화
단점 긴 작업이 앞에 오면 비효율적 긴 작업이 계속 밀릴 수 있음
예시 상황 공정한 순서가 중요한 경우 효율적인 자원 활용이 중요한 경우
 

📌 마무리

FCFS와 SJF는 운영체제의 기본 중의 기본이다.
단순한 구조인 FCFS는 예측이 쉬운 반면, SJF는 효율은 좋지만 상황에 따라 공정성이 떨어질 수 있다.
따라서 시스템의 목적과 특성을 고려해 적절한 스케줄링 알고리즘을 선택해야 한다.

 


📌 매일 간단히 IT 관련 개념을 익히고 싶다면 구독하세요!👇👇👇

http://www.youtube.com/@itbite_daily

 

오늘의 IT한입

👋 하루 한 입, 쉽게 배우는 IT & 개발 개념! 프로그래밍, 데이터베이스, 운영체제, 네트워크, 보안, 코딩테스트까지! 취업 준비부터 실무 감각까지 매일 짧고 강력하게 정리해드립니다. 📍 매일

www.youtube.com

 

반응형

댓글