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