转自:http://blog.csdn.net/fcoolx/article/details/4412196
select |
Process is blocked in the select(2) syscall. Usually means it's waiting for external input (network , terminal, file updated, things like that). select only supports waiting for something related to a file descriptor (e.g., 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).
RUN |
Process is ready to run but has been suspended while another process is running.
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 |
Process is blocked in the kqueue(2) syscall. This is similar to select(2)--waiting for external input. kqueue is more efficient than select and supports several other events that can be waited on.
sbwait |
Process is waiting for a socket buffer to be filled or emptied.
pipered |
Process is waiting for data to arrive on a pipe ("rd" is short for read).
tips:
引用自:http://www.webhostingtalk.com/showthread.php?t=583672