프로세스(Process)의 상태 전이, 스케쥴링(Scheduling)
뿌리튼튼 CS/OS2016. 4. 9. 15:38
프로세스가 생성되면 Ready 상태가 된다.
Ready 상태란, cpu를 기다리는 상태이다.
그리고 곧 Running 상태로 넘어가서 cpu에게 실행된다.
Running 상태란, cpu에게 실행되어지고 있는 상태이다.
그러다가 자신에게 주어진 cpu 단위 사용시간 (cpu time quantum) 을 모두 소비하거나, 혹은 더 높은 우선순위의 작업 (예를들어 인터럽트) 에게 cpu를 선점당할 경우 다시 Ready 상태로 돌아가서 줄을 선다.
만약 Running 상태에 있다가 block I/O 등 시간이 오래 걸리는 함수 (예를들어 fopen) 를 호출한 경우 해당 함수가 리턴될 때까지 Waiting 상태가 된다.
Waiting 상태란 Sleep 상태와 같다. cpu를 기다리는 게 아니라 해당 I/O 의 종료를 기다린다. 신호 수신을 통해 Sleep 에서 깨어나면 Ready 상태가 되어 cpu에게 다시 실행되기를 기다린다.
프로세스가 종료될 때까지 위 과정이 반복된다.
출처 : 2015년 한양대학교 강수용 교수님의 수업 및 내 지식