프로세스가 준비된다
주소 공간과 커널 자료구조가 만들어지고 실행 대기열로 들어갈 준비를 한다.
R, S, D, T, Z는 단순 암기표가 아니라 프로세스가 실행 가능 상태인지, 커널 사건에 묶였는지, 이미 끝났지만 수거되지 않았는지를 알려주는 상태 기계다.
주소 공간과 커널 자료구조가 만들어지고 실행 대기열로 들어갈 준비를 한다.
지금 CPU를 쓰고 있거나, CPU만 받으면 즉시 실행할 수 있다.
네트워크, 타이머, 입력 같은 사건이 오면 다시 실행 가능 상태로 돌아간다.
디스크나 블록 장치 경로에 묶인 상태라 일반 신호로 바로 빠져나오기 어렵다.
자식은 끝났고 부모가 종료 상태를 아직 수거하지 않은 상태다.
실행 가능 프로세스가 많은 것이므로 병렬도, 우선순위, CPU 포화 여부를 먼저 확인한다.
커널 I/O 대기는 강제 종료보다 디스크, NFS, 장치 지연 원인을 찾는 것이 먼저다.
디버거, 작업 제어, 중지 신호로 멈춘 경우라면 재개 신호나 부모 셸 상태를 본다.
부모 프로세스를 찾아 자식 종료 상태를 수거하는 루프가 있는지 확인한다.
서버는 요청 사이에 자는 시간이 많다. 처리량과 깨움 빈도를 함께 본다.
한 번의 상태보다 같은 코드가 계속 쌓이는지가 병목 판단에 더 중요하다.
Ready와 Waiting의 차이는 CPU만 있으면 실행 가능한지다. Zombie는 CPU 문제가 아니라 부모가 자식의 종료 상태를 수거하지 않은 프로세스 관리 문제다.