OS Scheduler Basics

디스패처, 선점 여부, CPU/I/O 버스트로 보는 스케줄링 기준

스케줄링은 준비 큐의 어떤 프로세스에 CPU를 줄지 결정하고, 디스패처는 실제 문맥 전환으로 실행권을 넘긴다.

01

준비 큐 형성

I/O를 마친 프로세스와 새로 준비된 프로세스가 ready queue에 들어온다.

ready
02

스케줄러 결정

정책은 CPU burst 예측, 우선순위, 대기 시간, deadline 같은 기준으로 다음 실행 대상을 고른다.

select
03

디스패처 실행

문맥 저장·복원, 모드 전환, 프로그램 카운터 이동으로 실제 CPU가 넘어간다.

context switch
04

선점 판단

타이머 인터럽트나 더 높은 우선순위 작업 도착 시 실행 중 작업을 중단할 수 있다.

preemption
CPU-bound
긴 CPU burst를 가지며 throughput과 공정성 영향을 크게 준다. interactive 작업을 밀어내지 않도록 quantum과 우선순위를 조정한다.
long burst
I/O-bound
짧게 CPU를 쓰고 자주 대기하므로 응답성이 중요하다. 스케줄러는 I/O 완료 후 빠르게 CPU를 배정해야 사용자 대기 시간이 짧아진다.
interactive
Dispatcher
스케줄러 결정이 끝나도 dispatch latency가 크면 응답이 늦다. 문맥 전환 자체도 비용임을 지표에 포함한다.
switch cost

스케줄링 지표 구분

응답 시간 interactive 시스템에서는 turnaround보다 첫 응답 시간이 중요하다.
공정성 높은 CPU 사용률이 특정 작업 starvation으로 얻어진 것이 아닌지 본다.
선점 비용 선점이 잦아져 cache locality와 context switch 비용이 커지지 않는다.

상태 흐름

ready -> running -> waiting(I/O) -> ready
running -> preempted by timer -> ready