Назад | Перейти на главную страницу

верхний столбец состояния процесса во FreeBSD

При интерактивном запуске top я вижу различные слова в столбце состояния:

Некоторые, такие как nanslp или kqread, говорят сами за себя, другие - нет.

Пробовал страницы руководства Mr:

STATE - это текущее состояние (одно из «START», «RUN» (отображается как «CPUn» в системах SMP), «SLEEP», «STOP», «ZOMB», «WAIT», «LOCK») или событие, на котором процесс ожидает), C - номер процессора, на котором выполняется процесс (отображается только в системах SMP)

Пробовали поисковики:

Где я могу получить полный список возможных состояний процесса во FreeBSD 9 и их значения?

Чуть дальше в top man-страница есть:

   If  a  process is in the "SLEEP" or "LOCK" state, the state column will
   report the name of the event or lock on which the process  is  waiting.
   Lock  names  are  prefixed  with an asterisk "*" while sleep events are
   not

Таким образом, все не заглавные "СОСТОЯНИЕ" без префикса звездочки - это названия событий сна.

Эти метки установлены в ядре FreeBSD, поэтому вам следует найти их значение именно здесь. К сожалению, нет хорошего резюме, так как название события задается sleep звонки.

Например, где-то в /usr/src/sys/kern/sys_pipe.c в pipe_read функция:

error = msleep(rpipe, PIPE_MTX(rpipe), PRIBIO | PCATCH, "piperd", 0);

Или в /usr/src/sys/kern/sys_pipe.c в kern_nanosleep функция:

error = tsleep(&nanowait, PWAIT | PCATCH, "nanslp", tvtohz(&tv));