CPU는 한 번에 한 가지 프로세스만 처리할 수 있다. 메모리에 올라온 프로세스들 중 어떤 프로세스를 먼저 처리할지 일들의 순서를 정하는 것을 CPU 스케쥴링이라고 한다. 다르게 말하면, Ready queue에 있는 프로세스들의 실행 순서를 정하는 것이다.

→ 스케쥴링을 사용함으로써 다중 프로그래밍이 가능해지고 CPU 이용률을 극대화시킬 수 있다.

다중 프로그래밍? : CPU가 쉬지 않고 항상 실행되게 함으로써 CPU 이용률을 높이는 것

프로세스 상태

https://camo.githubusercontent.com/65ac760d9eb00c3771e99da46a922fc1f1a1763f26e308616ec0f864fdc51db0/68747470733a2f2f696d67312e6461756d63646e2e6e65742f7468756d622f5238303078302f3f73636f64653d6d746973746f72793226666e616d653d687474707325334125324625324674312e6461756d63646e2e6e65742532466366696c65253246746973746f7279253246393945383545334135433436304631393036

new : 프로세스 생성중

ready : 프로세스가 CPU를 기다리는 상태

running : 프로세스가 CPU를 할당받아 명령어를 수행중인 상태

waiting : 프로세스가 어떤 사건(event)이 일어나기를 기다림

terminated : 프로세스의 실행 종료

상태 전이