토픽 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