Очередь выполнения всегда меняется, поэтому практически невозможно получить набор процессов в текущей очереди выполнения.
Тем не менее, вы можете получить аппроксимацию, посмотрев на поле STAT
(состояние) списка процессов из ps
. При выполнении команды ниже:
$ ps aux
... если поле STAT
начинается с R
, то процесс помечается ядром как RUNNABLE
, что в большинстве операционных систем означает, что оно находится в очереди выполнения. Вот как выглядит работающий процесс на моей машине:
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
root 78179 0.0 0.0 599828 480 s003 R+ 7:51AM 0:00.00 ps aux
В солярисе вы также можете использовать команду prstat
и посмотреть на столбец STATE
. Значение run
указывает, что процесс находится в очереди выполнения. (Также обратите внимание, что значение cpuN
указывает, что процесс в настоящее время выполняется на процессоре N.
Например:
$ prstat -s cpu -n 5
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
13974 kincaid 888K 432K run 40 0 36:14.51 67% cpuhog/1
27354 kincaid 2216K 1928K run 31 0 314:48.51 27% server/5
14690 root 136M 46M sleep 59 0 0:00.59 2.3% Xsun/1
14797 kincaid 9192K 7496K sleep 59 0 0:00.10 0.9% dtwm/8
14851 kincaid 24M 14M sleep 48 0 0:00.03 0.3% netscape/1
Total: 97 processes, 190 lwps, load averages: 2.18, 2.15, 2.11