CPU 스케줄링은 운영체제에서 프로세스가 CPU를 사용할 수 있도록 할당하는 메커니즘을 말한다.
CPU는 한 번에 하나의 프로세스만 실행할 수 있기 때문에,
여러 프로세스가 실행 대기 중일 때 운영체제는 적절한 알고리즘을 사용하여 어떤 프로세스를 먼저 실행할지 결정해야 한다.

 

📌 스케줄러 종류

운영체제에는 다양한 스케줄러가 있다.
CPU 스케줄링과 직접적으로 관련된 것은 단기 스케줄러다.

 

🔹 장기 스케줄러( Long-term Scheduler )

  • 어떤 프로세스를 실행할지 결정하여 준비( Ready )큐로 이동시킨다.
  • 시스템의 전체적인 프로세스 수를 조절하여 CPU와 메모리 자원의 균형을 맞춘다.

🔹 단기 스케줄러( Short-term Scheduler )

  • CPU를 어떤 프로세스에 할당할지를 결정한다.
  • 실행 가능한 프로세스 중 하나를 선택하여 CPU를 할당한다.

🔹 중기 스케줄러( Medium-term Scheduler )

  • 실행 중인 프로세스를 일시 중단( Suspend )하거나 다시 활성화( Resume)하는 역할을 담당한다.
  • 메모리 관리 및 스왑( Swap ) 관련 작업을 수행한다.

📌 CPU 스케줄링 방식

CPU 스케줄링 방식은 크게 비선점( Non-preemptive )과 선점( Preemptive ) 방식으로 나뉜다.
  • 비선점( Non-preemptive ) 방식: 프로세스가 CPU를 할당받으면, 자발적으로 종료하거나 I/O 요청을 하기 전까지 CPU를 다른 프로세스가 사용할 수 없다.
  • 선점( Preemptive ) 방식: 특정 조건이 발생하면 현재 실행중인 프로세스를 중단하고 CPU를 다른 프로세스에 할당할 수 있다.

📌 주요 CPU 스케줄링 알고리즘

🔹 FCFS( First-Come, First-Served, 선입 선처리 스케줄링 )

  • 먼저 도착한 프로세스부터 실행한다.
  • 호위 효과( Convoy Effect )가 발생할 수 있다.
    • 긴 작업이 짧은 작업을 지연시키는 현상

🔹 SJF( Shortest Job First, 최단 작업 우선 스케줄링 )

  • 실행 시간이 가장 짧은 프로세스를 먼저 실행한다.
  • 평균 대기 시간을 최소화하지만, 실행 시간을 정확히 예측하기 어렵다.
  • 선점형과 비선점형 방식이 있다.

🔹 RR( Round Robin, 라운드 로빈 스케줄링 )

  • 각 프로세스가 일정한 시간( Time Quantum ) 동안 CPU를 할당받고, 시간이 지나면 다음 프로세스로 교체된다.
  • 타임슬라이스의 시간이 너무 크면 FCFS와 유사해지고, 너무 작으면 문맥 교환 오버헤드가 증가한다.

'CS > 혼공컴운' 카테고리의 다른 글

[CS] 가상 메모리  (0) 2025.02.13
[CS] 동기화  (0) 2025.02.12
[CS] 스레드  (0) 2025.02.11
[CS] 프로세스 계층 구조  (0) 2025.02.11
[CS] 프로세스 상태  (0) 2025.02.11

+ Recent posts