프로세스(process)란 실행중에 있는 프로그램(Program)을 의미
new -> ready - new 상태에서 프로세스가 생성되게 되면 OS 커널에 존재하는 Ready Queue에 올라가게됩니다.
ready -> running - Ready Queue에 있는 프로세스들을 OS가 위에서 말한 프로세스 스케줄링 알고리즘에 의해서 Running 상태로 가야할 프로세스를 CPU로 할당하게 됩니다. 그러면 프로세스가 Running 상태가 됩니다.
running -> ready - 현재 running 상태에 있는 프로세스A 보다 Ready Queue에서 대기하고 있는 프로세스 B가 우선순위가 높으면, preemptive schedule(선점형)인 경우 프로세스A는 Ready 상태로 오게되고 프로세스B가 running 상태로 가서 CPU를 할당 받게됩니다.
running -> blocked - 현재 running 상태에 있는 프로세스A에서 입출력(I/O) 이벤트가 발생했을때 프로세스A가 blocked 상태로 가게됩니다.
Waiting(blocked) -> ready - 입출력(I/O)이벤트가 종료된 프로세스는 다시 Ready상태로 오게됩니다.
running -> terminate - 프로세스 종료.
CPU 할당 순서 및 방법을 결정 (running 상태로 갈 프로세스를 결정)
우선순위(Priority algorithm) 알고리즘과 라운드 로빈(Round Robin) 알고리즘