Learning
토픽 12 / 85·CPU 스케줄링

스케줄링 (Scheduling)

스케줄링 (Scheduling)

CPU를 어떤 프로세스/스레드에 할당할지 결정하는 운영체제의 핵심 기능으로, 준비 큐의 프로세스 중 선택하여 CPU를 할당하고 성능·공정성·응답시간을 최적화

목적: CPU 활용률 최대화, 처리량 증대, 응답시간·대기시간·반환시간 최소화, 공정성

특징: 선점형/비선점형, 우선순위, 시간 할당량, 다단계 큐

성능 지표

  • CPU 활용률(Utilization): CPU 사용 비율
  • 처리량(Throughput): 단위 시간당 완료 프로세스 수
  • 반환시간(Turnaround Time): 제출부터 완료까지
  • 대기시간(Waiting Time): 준비 큐 대기 시간 합
  • 응답시간(Response Time): 첫 응답까지 시간

선점(Preemptive) vs 비선점(Non-preemptive)

  • 선점: CPU 강제 회수 가능, 시분할, 우선순위 선점, 오버헤드, 현대 OS
  • 비선점: 자발적 양보(I/O, 종료), 배치 시스템, 단순

스케줄링 알고리즘: FCFS(도착순서), SJF(최단작업우선), Priority(우선순위), Round Robin(시간할당량), Multilevel Queue(다단계큐), Multilevel Feedback Queue(피드백큐)

스케줄링 큐: Job Queue(전체 프로세스), Ready Queue(CPU 대기), Device Queue(I/O 대기)

디스패처(Dispatcher): 스케줄러가 선택한 프로세스에 CPU 할당, 컨텍스트 스위칭, 모드 전환

적용사례: 모든 현대 OS, 실시간 시스템, 클라우드 스케줄러

비교: 선점형(응답성/오버헤드/현대OS) vs 비선점형(단순/배치/응답느림)

연관: 스케줄링 알고리즘, 컨텍스트 스위칭, 프로세스, CPU