

- Interactivae job에게 적절한 response제공 요망
- CPU와 I/O장치 등 시스템 자원을 골고루 효율적으로 사용
- 사람과 소통하는 작업에게 많이 부여
- I/O bound process
- CPU를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job
- many and short CPU bursts
- CPU bound process
- 계산 위주의 job
- few very long CPU bursts
CPU Scheduler (운영체제 안에서 cpu스케줄링)
Ready 상태의 프로세스 중에서 이번에 CPU를 줄 프로세스를 고른다
Dispatcher
CPU의 제어권을 CPU scheduler에 의해 선택된 프로세스에게 넘긴다
이 과정은 context switch(문맥 교환)이라고 한다
CPU스케줄링이 필요한 경우는 프로세스에게 다음과 같은 상태 변화가 있는 경우이다
- Running -> Blocked (ex. I/O 요청하는 시스템 콜)
- Running -> Ready (ex. 할당시간 만료로 timer interrupt)
- Blocked -> Ready (ex. I/O 완료 후 인터런트)
- Terminate
1, 4에서의 스케줄링은 자진 반남
2, 3은 강제로 빼앗는 반납