: 프로세스 사이에서 CPU 사용을 switching 해주면서 CPU가 쉬는 구간이 없도록 만들어준다.
❗️ Process Scheduling이 필요한 이유
1. CPU Utilization 최대화
2. time sharing을 하면서 concurrent하게 실행시키기 위해
3. proccess 사이에 형평성있게 분배하기 위해
: CPU가 할 일을 끝내면 OS가 ready queue에서 다음 프로세스를 선택
(short-term scheduler라고도 불림)
=> 1, 4번은 반드시 scheduling decision이 필요함
: 다른 프로세스가 돌 수 있도록 선택된 프로세스에 CPU를 할당해주는 component
=> scheduler를 만들 때, 여러 가지 기준을 복합적으로 어떤 걸 최적화하는 방향으로 쓸지 결정해야 함
(평균을 기준으로 할 수도 있고, maximum값을 최소화/minimum 값을 최대화 하는 방법을 사용할 수도 있음)
(=> interactive system에서는 평균보다는 response time의 분산 정도를 최소화하는 방법을 주로 사용함)