운영체제

CPU 스케줄링 알고리즘(예: FCFS, SJF, Round Robin) : 쉬운설명

♠디지털 모험일지♠ 2024. 12. 10. 12:30
728x90
반응형
SMALL

CPU 스케줄링 알고리즘 (예: FCFS, SJF, Round Robin)

CPU 스케줄링 알고리즘은 컴퓨터의 CPU(중앙처리장치)가 여러 작업(프로세스)을 처리할 때 어떤 순서로 처리할지를 결정하는 방법입니다. 이 방법들은 시스템의 응답성을 높이고, 효율적으로 CPU를 사용할 수 있게 도와줍니다.


1. FCFS (First-Come, First-Served)

  • 정의: 먼저 도착한 작업부터 순서대로 처리하는 방법입니다. 마치 줄을 서서 기다리는 것처럼, 작업들이 도착한 순서대로 처리됩니다.
  • 쉽게 말하면: 식당에서 사람들이 줄을 서서 주문을 기다리는 것과 같아요. 줄 맨 앞에 있는 사람이 먼저 주문을 하고, 뒤에 있는 사람은 앞사람이 끝나길 기다려야 해요.
  • 특징:
    • 비선점형(Non-preemptive)
      • 쉽게 말하면: 앞사람이 주문을 다 할 때까지 다른 사람이 끼어들 수 없어요.
    • : 한 번 CPU가 작업을 시작하면, 그 작업이 끝날 때까지 다른 작업으로 교체되지 않습니다.
    • 구현이 간단하지만, 모든 작업이 오래 걸리는 작업을 기다려야 할 수 있습니다. 이를 대기 시간이 길다고 합니다.
  • 장점:
    • 구현이 매우 간단하고, 관리하기 쉽습니다.
    • 특정 상황에서는 공정하게 느껴질 수 있습니다. (먼저 온 순서대로 처리하니까요)
  • 단점:
    • 대기 시간이 길어질 수 있습니다. 특히, 앞쪽에 긴 작업이 있을 때, 뒤쪽의 작은 작업들이 많이 기다려야 합니다.
      • 쉽게 말하면: 앞사람이 메뉴를 길게 고르면, 뒤에서 기다리는 사람들은 오래 기다려야 해요.
  • 예시:
    • 작업 도착 순서: A(3초), B(5초), C(2초)
    • 실행 순서: A → B → C

2. SJF (Shortest Job First)

  • 정의: 작업 중에서 가장 짧은 실행 시간을 가진 작업을 먼저 처리하는 방법입니다.
  • 쉽게 말하면: 식당에서 주문을 받을 때, 조리 시간이 짧은 메뉴부터 먼저 만드는 것과 비슷해요. 빨리 끝낼 수 있는 일을 먼저 처리하는 거죠.
  • 특징:
    • 비선점형(Non-preemptive)과 선점형(Preemptive) 모두 가능
      • 쉽게 말하면: 짧은 질문은 바로 답해주고, 긴 질문은 나중에 답하는 것과 비슷해요.
    • 비선점형은 시작한 작업을 끝까지 처리하는 것이고, 선점형은 더 짧은 작업이 들어오면 현재 작업을 멈추고 그 짧은 작업부터 처리하는 방식입니다.
    • 짧은 작업이 먼저 처리되므로, 평균 대기 시간을 줄일 수 있습니다.
  • 장점:
    • 평균 대기 시간이 짧아져서 효율적인 처리가 가능합니다.
      • 쉽게 말하면: 간단한 일부터 처리하면 전체적으로 더 빨리 끝낼 수 있어요.
    • 긴 작업이 나중에 처리되므로, 작은 작업들이 빠르게 끝날 수 있습니다.
  • 단점:
    • 기아 상태(Starvation)
      • 쉽게 말하면: 계속 짧은 질문만 먼저 답해주면, 긴 질문은 영영 답을 못 받을 수 있어요.
    • 발생 가능: 짧은 작업들이 계속 들어오면, 긴 작업은 계속 기다려야 할 수 있습니다.
    • 작업의 실행 시간을 미리 알기 어려운 경우에는 사용하기 어렵습니다.
  • 예시:
    • 작업 실행 시간: A(3초), B(5초), C(2초)
    • 실행 순서: C → A → B

3. Round Robin (RR)

  • 정의: 각 작업에게 시간 할당량(Time Quantum)을 정해 주고, 그 시간만큼만 CPU를 사용하게 한 후, 다른 작업에게 기회를 주는 방식입니다. 모든 작업이 순서대로 시간을 나눠가지는 방식입니다.
  • 쉽게 말하면: 식당에서 한 명에게만 10분 동안 주문할 기회를 주고, 시간이 지나면 다음 사람에게 기회를 주는 것과 비슷해요. 시간이 다 되면 뒤로 가서 다시 줄을 서야 해요.
  • 특징:
    • 선점형(Preemptive)
      • 쉽게 말하면: 한 사람이 주문할 때 시간이 다 되면, 완전히 주문을 끝내지 않았더라도 다음 사람에게 기회를 줘요.
    • 주어진 시간 할당량이 지나면, 작업이 끝나지 않았더라도 강제로 CPU를 다른 작업에게 넘깁니다.
    • 시간 할당량이 너무 크면 FCFS처럼 작동하고, 너무 작으면 자주 전환해서 오히려 효율이 떨어질 수 있습니다.
  • 장점:
    • 응답성이 좋아집니다. 모든 작업이 조금씩이라도 CPU를 사용할 수 있기 때문에, 대기 시간이 줄어듭니다.
      • 쉽게 말하면: 질문이 길어도 잠시 답을 듣고, 다시 기회를 기다릴 수 있어요.
    • 공정함: 모든 작업에게 균등한 기회를 주기 때문에, 특정 작업이 오랫동안 기다리지 않습니다.
  • 단점:
    • 시간 할당량을 잘못 설정하면 성능이 떨어질 수 있습니다.
      • 쉽게 말하면: 한 사람에게 너무 많은 시간을 주면 뒤에 있는 사람들이 많이 기다리게 되고, 너무 적은 시간을 주면 질문에 답을 다 못할 수 있어요.
    • 오버헤드(Overhead): 자주 작업이 전환되기 때문에, 작업 전환에 따른 오버헤드가 발생할 수 있습니다.
  • 예시:
    • 시간 할당량: 2초
    • 작업 실행 시간: A(4초), B(5초), C(3초)
    • 실행 순서:
    • A(2초) → B(2초) → C(2초) → A(2초 남음) → B(3초 남음) → C(1초 남음) → A 완료 → B(3초 남음) → C 완료 → B 완료

스케줄링 알고리즘의 비교

알고리즘 설명 장점 단점 적합한 경우
FCFS 도착 순서대로 처리 구현이 간단 긴 작업이 있으면 대기 시간 증가 작은 시스템이나 간단한 처리에 적합
SJF 짧은 작업을 먼저 처리 평균 대기 시간 감소 긴 작업이 기다리게 될 수 있음 작업 시간이 예측 가능한 경우
Round Robin 일정한 시간 동안 순환 처리 응답성 향상, 공정함 시간 할당량 설정이 중요 사용자 인터페이스가 중요하거나, 다중 사용자 시스템

쉽게 요약

  • FCFS: 먼저 온 사람이 먼저 처리됩니다. 줄 서기 같은 느낌이에요.
  • SJF: 짧은 작업부터 먼저 처리됩니다. 간단한 일부터 끝내는 전략이죠.
  • Round Robin: 모든 작업에게 정해진 시간만큼 차례로 기회를 줍니다. 놀이공원에서 타임 제한이 있는 놀이기구 같은 방식이에요.

2024.10.29 - [네트워크] - 로드 밸런싱(Load Balancing)이란? : 쉬운설명

 

로드 밸런싱(Load Balancing)이란? : 쉬운설명

1. 기본 정의로드 밸런싱은 여러 서버에 작업(트래픽)을 고르게 나눠주는 기술입니다.목표는 한 서버에 작업이 몰리는 것을 방지하고, 모든 서버를 효율적으로 사용하는 것입니다.2. 쉽게 설명비

alswnsghd1234.tistory.com

2024.12.10 - [네트워크] - 로드 밸런싱의 주요 기술 : 쉬운설명

 

로드 밸런싱의 주요 기술 : 쉬운설명

1. DNS 라운드 로빈 (DNS Round Robin)설명들어오는 요청을 여러 서버로 순서대로 분배하는 방법입니다.서버 목록에서 첫 번째 서버로 요청을 보낸 후, 다음 요청은 두 번째 서버로, 그다음은 세 번째

alswnsghd1234.tistory.com

 

반응형
SMALL