CPU 스케줄링

고범규·2025년 11월 22일

CS

목록 보기
7/8

CPU 스케줄링

컴퓨터는 여러 프로그램을 동시에 실행하는 것처럼 보이지만, 실제로는 CPU 하나가 빠르게 여러 작업을 번갈아가며 처리한다. 이렇게 CPU의 사용 순서를 정해주는 것이 CPU 스케줄링

스케줄링의 기준

  • 처리량 (Throughput): 단위 시간당 처리 가능한 작업 수
  • 반응 시간 (Response Time): 요청 후 첫 응답까지 걸리는 시간
  • 대기 시간 (Waiting Time): 준비 큐에서 기다리는 시간
  • 반환 시간 (Turnaround Time): 요청부터 완료까지 걸리는 전체 시간

대표 스케줄링 알고리즘

FCFS (First-Come, First-Served

가장 먼저 도착한 프로세스부터 처리하는 방식이다. 간단하지만, Convoy Effect(호위 효과) 로 인해 짧은 작업이 오래 대기할 수 있다.

SJF (Shortest Job First)

실행 시간이 짧은 작업부터 처리한다. 평균 대기 시간이 짧지만, 실행 시간을 미리 알아야 한다는 단점이 있다.

Priority Scheduling

우선순위가 높은 작업부터 처리한다. Starvation(기아 현상) 이 생길 수 있어, 우선순위 보정이 필요하다.

Round Robin (RR)

각 프로세스에 정해진 시간만큼 CPU를 나눠주는 방식이다. 응답성이 좋아 사용자 인터페이스에 적합하다.

실시간 CPU 스케줄링

Rate-Monotonic(RM) 스케줄링

선점 가능한 정적 우선순위 정책을 이용하여 주기 태스크들을 스케줄 하는 방식이다.

  • 기준 : 주기
  • 각각의 주기 태스크들은 시스템에 진입하게 되면 주기에 따라서 우선순위가 정해지는데,
    주기가 짧은 태스크에게는 높은 우선순위, 주기가 긴 태스크에게는 낮은 우선순위를 부여한다.
  • CPU를 더 자주 필요로 하는 태스크에게 더 높은 우선순위를 주는 것이고
    이 우선순위는 변화하지 않고 고정된다. (정적 우선순위 스케줄링)

Earliest-Deadline-First(EDF) 스케줄링

선점 가능한 동적 우선순위 정책을 이용하여 주기 태스크들을 스케줄 하는 방식이다.

  • 기준 : 마감시간
  • 마감시간까지 남은 시간이 짧은 태스크의 작업이 높은 우선순위를 가지며,
  • 우선순위는 새로 실행 가능하게 된 프로세스의 마감시간에 맞춰서 동적으로 조정된다.

reference: 링크텍스트

0개의 댓글