Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Хьюз Камерон. Параллельное и распределенное программирование на С++ - royallib.ru.doc
Скачиваний:
120
Добавлен:
11.03.2016
Размер:
1.97 Mб
Скачать

Использование утилиты ps

Утилита ps генерирует отчет, который содержит статистические данные о выполнении текущих процессов. Эту информацию можно использовать для контроля за их состоянием. В табл. 3.8 перечислены общие заголовки и описаны выходные данные, генерируемые утилитой ps для сред Solaris/Linux. В любой многопроцессорной среде утилита ps успешно применяется для мониторинга состояния процессов, степени использования ЦП и памяти, приоритетов и времени запуска текущих процессов. Ниже приведены командные опции, которые позволяют управлять информацией, содержащейся в отчете (с их помощью можно уточнить, что именно и какие процессы вас интересуют). В среде Solaris по умолчанию (без командных опций) отображается информация о процессах с тем же идентификатором эффективного пользователя и управляющим терминалом инициатора вызова. В среде Linux по умолчанию отображается информация о процессах, id пользователя которых совпадает с id инициатора запуска. В обеих средах в этом случае отображаемая информация, ограниченная следующими составляющими: PID, TTY, TIME и COMMAND. Перечислим опции, которые позволяют получить информацию о нужных процессах.

-t term Список процессов, связанных с терминалом, заданным значением term

-e Все текущие процессы

-a (Linux) Все процессы с терминалом tty за исключением лидеров сеанса

(Solaris) Большинство часто запрашиваемых процессов за исключением лидеров группы и процессов, не связанных с терминалом

-d Все текущие процессы за исключением лидеров сеанса

T (Linux) Все процессы, связанные с данным терминалом

a (Linux) Все процессы, включая процессы остальных пользователей

r (Linux) Только выполняющиеся процессы

Таблица 3 .2. Общие заголовки, используемые для утилиты ps в средах Solaris/Linux

USER, UID Пользовательское имя владельца процесса

PID ID процесса

PPID ID родительского процесса

PGID ID лидирующего процесса в группе

SlD ID лидера сеанса

%CPU Коэффициент использования времени ЦП (в процентах) процессом

в течение последней минуты

RSS   Объем реального ОЗУ, занимаемый процессом в данный момент (в Кбайт)

%MEM   Коэффициент использования реального ОЗУ процессом в течение последней минуты

SZ Размер виртуальной памяти, занимаемой данными и стеком процесса (в Кбайт или страницах)

WCHAN Адрес события, в ожидании которого процесс пребывает в состоянии ожидания

COMMAND Имя команды и аргументы

CMD

TT, TTY   Управляющий терминал процесса

S, STAT   Текущее состояние процесса

TIME Общее время ЦП, используемое процессом (HH:MM:SS)

STIME, START Время или дата старта процесса

NI   Фактор уступчивости процесса

PRI   Приоритет процесса

С, CP   Коэффициент краткосрочного использования ЦП для вычисления планировщиком значения PRI

ADDR Адрес памяти, выделенной процессу

LWP   ID потока

NLWP Количество потоков

В следующий список включены командные опции, которые используются для управления отображаемой информацией о процессах:

f полные распечатки

-l в длинном формате

– - j в формате задания

Приведем пример использования утилиты ps в средах Solaris/Linux:

ps -f

По этой команде будет отображена полная информация о процессах, которая выводится по умолчанию в каждой среде. На рис. 3.7 показан результат выполнения этой команды в среде Solaris. Командные опции можно использовать тандемом (одна за другой). На рис 3 7 также показан результат совместного использования опций -l и -f в среде Solaris:

ps -lf

Командная опция l позволяет отобразить дополнительные заголовки: F, S, С, PRI, NI , ADDR и WCHAN. При использовании командной опции P отображается заголовок PSR, означающий номер процессора, которому назначается (или за которым закрепляется) процесс.

$ ps -f

UID PID PPID C STIME TTY TIME CMD

cameron 2214 2212 0 21:03:35 pts/12 0:00 -ksh

cameron 2396 2214 2 11:55:49 pts/12 0:01 nedit

$ ps -lf

F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD

8 S cameron 2214 2212 0 51 20 70e80f00 230 70e80f6c 21:03:35 pts/12 0:00 -ksh

8 S cameron 2396 2214 1 53 24 70d747b8 843 70152aba 11:55:49 pts/12 0:01 nedit

Рис. 3.7. Результат выполнения команд ps -f и ps -lf в среде Solaris

На рис. 3.8 показан результат выполнения утилиты ps с использованием командных опций Tux в среде Linux. Данные, выводимые с помощью заголовков %CPU, %MEM и STAT, отображаются для процессов. В многопроцессорной среде с помощью этой информации можно узнать, какие процессы являются доминирующими с точки зрения использования времени ЦП и памяти. Заголовок STAT отображает состояние или статус процесса. Ниже приведены символы, обозначающие статус, и дано соответствующее описание. Заголовок STAT позволяет узнать дополнительную информацию о статусе процесса.

D (BSD) Ожидание доступа к диску

P (BSD) Ожидание доступа к странице

X (System V) Ожидание доступа к памяти

W (BSD) Процесс выгружен на диск

К (AIX) Доступный процесс ядра

N (BSD) Приоритет выполнения понижен

> (BSD) Приоритет выполнения повышен искусственно

< (Linux) Процесс с высоким приоритетом

L (Linux) Страницы заблокированы в памяти

Эти символы должны предшествовать коду статуса. Например, если перед кодом статуса стоит символ N, значит, процесс выполняется с более низким уровнем приоритета. Если код статуса процесса отображен символами SW<, это означает, что процесс пребывает в ждущем режиме, выгружен и имеет высокий уровень приоритета.