Состояния процессов (STATE) в top
Из man top: STATE — это текущее состояние процесса. Одно из "START", "RUN" (показывается как "CPUn" на SMP-системах), "SLEEP", "STOP", "ZOMB", "WAIT", "LOCK" или событие, которое ожидает процесс.
Содержание
START
RUN, CPU0, CPU1, CPU2, ...
Процесс выполняется. У однопроцессорной машины будет показано RUN, а у SMP — номер процессора. Process is ready to run but has been suspended while another process is running.
SLEEP
STOP
ZOMB
Процесс остался без PID'a, но всё равно выполняется. Избавиться от зомби можно, только перезагрузив систему.
WAIT
LOCK
*Giant
ucond
means the thread is waiting on a userland condition variable. This is a type of synchronization point in userland accessed via the pthread_cond_*(3) api. Это может обозначать, что поток ждёт выполнения другого занятого потока.
biord
Дисковая активность (Input/Output)?
select
Process is blocked in the select(2) syscall. Обычно это значит, что процесс ждёт внешнего ввода (сеть, терминал, изменение файла, и т.п.). select поддерживает только ожидание чего-то, что связано с файловым дескриптором (например socket, tty, vnode).
nanslp
Process is blocked in the nanosleep(2) syscall, which is an explicit request to pause for a certain amount of time. Hard to generalize this one. It should be infrequent, or it might be used by something implementing its own polling.
kserel
Process is blocked waiting for an event to trigger a KSE upcall. This isn't easy to explain in a few words, but you can read kse(2) for most of the relevant details. Usually means the process is waiting for external input (similar to select).
kse — это поддержка так называемых пользовательских потоков [1](Рус.) («user threads»). С помощью user threads можно загрузить только одно ядро процессора (см. man 2 kse).
pause
Process is blocked in the pause(2) or sigsuspend(2) syscall. It might be waiting for a signal, or you might see this if another thread is running and the main thread is waiting for all other threads to end.
lockf
Process is blocked waiting for a file lock to be released. Could be an flock(2) lock or an fcntl(2)/F_SETLK record lock.
kqread
Процесс заблокирован вызовом kqueue(2). Это похоже на select(2) — ожидание внешнего ввода. kqueue более эффективен, чем select и поддерживает several other events that can be waited on.
sbwait
Process is waiting for a socket buffer to be filled or emptied.
piperd
Process is waiting for data to arrive on a pipe ("rd" is short for read).
ttyin
В этом состоянии обычно висят процессы ждущие ввода на контрольном терминале. (getty, ed, vi, sh, cat, passwd).
Примечания
http://forum.lissyara.su/viewtopic.php?f=8&t=8904
http://www.webhostingtalk.com/archive/index.php/t-583672.html
http://forums.freebsd.org/showpost.php?p=29488&postcount=6