맨 ps
페이지
PROCESS STATE CODES
R running or runnable (on run queue)
D uninterruptible sleep (usually IO)
S interruptible sleep (waiting for an event to complete)
Z defunct/zombie, terminated but not reaped by its parent
T stopped, either by a job control signal or because
it is being traced
위키피디아http://en.wikipedia.org/wiki/Process_state적어도 D, S 및 T 상태는 명시적으로 언급되지 않았습니다.
D, S, T는 준비 상태, 차단 상태 또는 기타 상태에 속합니까?
답변1
Linux 아키텍처에는 소위 "차단" 상태가 없기 때문에 "차단" 상태가 무엇을 의미하는지 모르겠습니다. 그러나 이러한 상태가 무엇을 의미하는지 설명할 수 있습니다.
셸에서 명령을 실행하면 sleep 100
해당 명령이 먼저 상태에 들어간다고 가정합니다 R
. 실행 중이지만 그리 길지는 않고 CPU 시간이 몇 조각에 불과합니다. D
하드 드라이브를 기다리기 때문에 중단 없이 잠자기 상태가 되는 경우가 몇 번 있습니다 . 그런 다음 중단 가능한 절전 상태로 들어갑니다 S
.
Ctrl+를 누르면 해당 프로세스로 Z이동됩니다 . SIGSTOP
그런 다음 프로세스는 중지된 상태로 들어갑니다 T
. SIGCONT
신호가 전송될 때까지 이 상태를 유지합니다 . 이 상태에서는 프로세스가 CPU 시간을 받지 않습니다.
Z
프로세스가 종료되면 상위 프로세스가 호출할 때까지 좀비 상태가 되며 waitpid()
, 그런 다음 커널은 PID를 삭제합니다.