3.3. Работа с процессами и потоками
Запустите «Process Explorer» (файл procexp.exe). В главном окне
перечислены все работающие в системе процессы, представленные в
виде древовидной структуры (рис. 28).
Двойной щелчок по имени процесса открывает окно его свойств
(рис. 29). Свойства процесса предоставляют информацию о работе вы-
бранного процесса. На вкладке «Образ» указаны путь к программе, ро-
дительский процесс, текущий рабочий каталог, предоставляется воз-
можность уничтожения процесса и др. На вкладке «Производитель-
ность» выводится информация об использовании процессора, описание
процесса, объем занятой памяти, на основе которых на вкладке «График
производительности» построены графики.
Существует два режима работы программы. В режиме дескрипторов
и в режиме библиотек DLL, переключение между режимами осуществляет-
ся с помощью сочетания клавиш Ctrl+H – переключение в режим отобра-
жения описателей и Ctrl+D – переключение в режим отображения DLL.
54
Рис. 28. Главное окно Process Explorer
Рис. 29. Окно свойств процесса
55
Рис. 30. Режим отображения дескрипторов
В режиме дескрипторов (рис. 30), в нижнем окне, отображаются
все открытые дескрипторы выбранного в верхнем окне процесса, в дан-
ном случае, посмотрим дескрипторы открытые процессом procexp.exe:
Section – диспетчер памяти объект «Секция» для общей памяти.
Semaphore – исполнительная система определяет объекты «семафор».
File – диспетчер ввода/вывода определяет объект «файл» для представ-
ления открытых экземпляров ресурсов драйверов устройств, которые
включают в себя файлы файловой системы. Key – «ключ» для представ-
ления открытого ключа системного реестра. Диспетчер процессов созда-
ет объекты «поток» (Thread) и «процесс» (Process). Mutant – «мутант»
внутреннее название для мьютекса.
В режиме библиотек DLL (рис. 31) отображаются все загружен-
ные процессом динамические библиотеки и отображенные в память
файлы.
56
Рис. 31. Режим отображения библиотек DLL
Process Explorer позволяет приостановить/возобновить работу
процесса, изменить приоритет, уничтожить процесс или уничтожить
процесс и его дерево. Для этого необходимо щелкнуть на нужный про-
цесс правой кнопкой мыши и в открывшемся контекстном меню вы-
брать необходимое действие. Например, в процесс explorer.exe, входит
процесс procexp.exe, можно уничтожить это дерево процессов (рис. 32).
Приостановка работы процесса может временно освободить занятые им
ресурсы для использования другими приложениями.
Process Explorer предоставляет в распоряжение пользователя
удобный инструмент, с помощью которого очень просто определить то,
каким процессом открыто определенное окно. Для этого следует пере-
тащить с панели инструментов Process Explorer кнопку
в любое ме-
сто открывшегося окна. После этого в верхней части главного окна бу-
дет подсвечено имя искомого процесса (рис. 33).
При помощи пункта меню «Параметры – Вместо диспетчера задач»
можно заменить стандартный Диспетчер задач Windows на Process
Explorer (рис. 34). Информация о системе, вызываемая из Process Explorer
более полная, чем аналогичная вкладка Диспетчера задач Windows.
57
Рис. 32. Уничтожение дерева процессов
Рис. 33. Подсветка имени искомого процесса
При помощи пункта меню «Файл – Сохранить» (рис. 35), сохра-
нить в текстовый файл список всех процессов с описаниями и объемом
занятой каждым из них памяти.
58
Рис. 34. Замена стандартного диспетчера задач
Рис. 35. Сохранение в текстовый файл списка всех процессов
Можно рассчитать влияние приоритета процесса на количество
выделяемого процессорного времени, а также задать приоритет (при-
оритет можно выбрать при помощи нажатия правой кнопки мыши по
процессу). На рис. 36 видно, сколько выделяется суммарного времени за
одну минуту при заданном приоритете «Реального времени: 24» и 4 со-
ответственно.
59
Рис. 36. Влияние приоритета на выделяемые ресурсы
У потоков, также как и у процессов, существует возможность ме-
нять приоритет, приоритет потока изменяется путем изменения приори-
тета у процесса. Аналогично процессам, потокам выделяется процес-
сорное время, также потоки можно приостановить и уничтожить.
Чтобы просмотреть потоки, исполняемые в рамках процесса, не-
обходимо открыть вкладку потоки в окне свойств процесса (рис. 37).
Чтобы просмотреть стек потока процесса, необходимо нажать
клавишу «Stack» (рис. 38).
Запустите «Process Monitor» (файл ProcmonRus.exe). Откроется
главное окно утилиты (рис. 39). В этом окне можно отследить действия
процессов во время их работы.
При помощи меню «Файл – Сохранить» можно сохранить ин-
формацию о процессах в журнал (рис. 40).
С помощью утилиты Process Monitor можно отследить действия
(включая «чтение» и «запись») процесса с файлами, реестром, сетью.
Для этого необходимо зайти в меню «Настройки – Выбор колонок» и
выбрать колонку «Категория» (рис. 41). В результате в колонке «Кате-
гория» можно увидеть действия процесса (рис. 42).
60
Рис. 37. Потоки
Рис. 38. Стек потока
61
Рис. 39. Главное окно Process Monitor
Рис. 40. Сохранение в журнал
62
Рис. 41. Выбор колонок
Рис. 42. Отслеживание действий процесса
63
Также можно отследить активность процессов при помощи меню
«Инструменты – Лог активных процессов» (рис. 43).
Рис. 43. Лог активных процессов
Process Monitor предоставляет возможность создавать фильтры,
позволяющие делать выборки из журналов. Попасть в меню фильтров
можно нажатием сочетания клавиш Ctrl+L. Фильтры можно создавать
по многим параметрам, например, по имени процесса, времени, катего-
рии, операций и др. Создадим фильтр, который делает выборку процес-
сов по операции записи в файл (рис. 44).
Также можно отследить работу процессов с файловой системой и
реестром при установке программного обеспечения. Рассмотрим дан-
ную функцию на примере установки 7-zip. Установите программу. По-
сле установки выведите на экран информацию о записи ключей в реестр
при установке программы. Для этого необходимо создать фильтр, кото-
рый делает выборку процессов по операции записи в RegCreateFile. Оп-
ределите, в каких разделах реестра 7-zip сохранил свою информацию.
По аналогии определите, в каких каталогах диска были созданы новые
данные.
64
Рис. 44. Создание фильтра
Рис. 45. Результат действия фильтра
|