Process State Machine

프로세스는 CPU를 쓰는 상태와 기다리는 상태를 계속 오간다

Ready는 실행 가능하지만 CPU를 기다리는 상태이고, Waiting은 I/O나 이벤트가 끝나야 다시 실행 후보가 되는 상태다.

Ready: CPU만 기다림
Waiting: I/O나 이벤트 대기
Terminated: 실행 종료
New PCB와 주소 공간을 만드는 중
생성 완료
Ready 실행 가능하지만 스케줄러 선택을 기다림
dispatch
Running CPU를 점유해 명령어를 실행 중
exit 또는 signal
Terminated 자원 반환, 부모의 wait 수거 대기 가능
타임 슬라이스 만료 또는 우선순위 선점
I/O 요청
Waiting 디스크, 네트워크, 입력 같은 외부 이벤트 대기
I/O 완료 인터럽트
Ready 바로 Running이 아니라 큐에서 다시 선택을 기다림
Stopped SIGSTOP이나 Ctrl+Z로 일시 정지, fg로 재개 가능
Zombie 종료됐지만 부모가 wait 하지 않아 PCB 일부가 남은 상태
D state 커널이 I/O 완료를 기다리는 중이라 kill로도 즉시 종료되지 않을 수 있음