Показать дерево системных процессов far manager определить используемые dll

Обновлено: 06.07.2024

Работа операционной системы Windows основана на работе процессов. В этой статье разберём что такое Windows процессы, их свойства, состояния и другое.

Процессы

Процесс стоит воспринимать как контейнер с набором ресурсов для выполнения программы. То есть запускаем мы программу, для неё выделяется часть ресурсов компьютера и эта программа работает с этими ресурсами.

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

Windows процессы состоят из следующего:

  • Закрытое виртуальное адресное пространство, то есть выделенная для процесса часть оперативной памяти, которая называется виртуальной.
  • Исполняемая программа выполняя свой код, помещает его в виртуальную память.
  • Список открытых дескрипторов. Процесс может открывать или создавать объекты, например файлы или другие процессы. Эти объекты нумеруются, и их номера называют дескрипторами. Ссылаться на объект по дескриптору быстрее, чем по имени.
  • Контекст безопасности. Сюда входит пользователь процесса, группа, привилегии, сеанс и другое.
  • Идентификатор процесса, то есть его уникальный номер.
  • Программный поток (как минимум один или несколько). Чтобы процесс хоть что-то делал, в нем должен существовать программный поток. Если потока нет, значит что-то пошло не так, возможно процесс не смог корректно завершиться, или стартовать.

У процессов есть еще очень много свойств которые вы можете посмотреть в “Диспетчере задач” или “Process Explorer“.

Процесс может быть в различных состояниях:

В Windows существуют процессы трёх типов:

  • Приложения. Процессы запущенных приложений. У таких приложений есть окно на рабочем столе, которое вы можете свернуть, развернуть или закрыть.
  • Фоновые процессы. Такие процессы работают в фоне и не имеют окна. Некоторые процессы приложений становятся фоновыми, когда вы сворачиваете их в трей.
  • Процессы Windows. Процессы самой операционной системы, например “Диспетчер печати” или “Проводник”.

Дерево процессов

В Windows процессы знают только своих родителей, а более древних предков не знают.

Например у нас есть такое дерево процессов:

Если мы завершим дерево процессов “Процесс_1“, то завершатся все процессы. Потому что “Процесс_1” знает про “Процесс_2“, а “Процесс_2” знает про “Процесс_3“.

Если мы вначале завершим “Процесс_2“, а затем завершаем дерево процессов “Процесс_1“, то завершится только “Процесс_1“, так как между “Процесс_1” и “Процесс_3” не останется связи.

Например, запустите командную строку и выполните команду title parrent чтобы изменить заголовок окна и start cmd чтобы запустить второе окно командной строки:

Измените заголовок второго окна на child и из него запустите программу paint:

В окне командной строке child введите команду exit, окно закроется а paint продолжит работать:

После этого на рабочем столе останутся два приложения, командная строка parrent и paint. При этом parrent будет являться как бы дедом для paint.

Запустите “Диспетчер задач”, на вкладке “Процессы” найдите процесс “Обработчик команд Windows”, разверните список и найдите “parrent“. Затем нажмите на нём правой копкой мыши и выберите “Подробно”:

Подробности по процессу parrent

Вы переключитесь на вкладку “Подробно” с выделенным процессом “cmd.exe“. Нажмите правой кнопкой по этому процессу и выберите «Завершить дерево процессов»:

Завершаем дерево процессов в диспетчере задач

Окно командной строки Parrent завершится а Paint останется работать. Так мы убедились что связи между первым процессом и его внуком нет, если у внука нет непосредственного родителя.

Потоки

На центральном процессоре обрабатываются не сами процессы, а программные потоки. Каждый поток, это код загруженный программой. Программа может работать в одном потоке или создавать несколько. Если программа работает в несколько потоков, то она может выполняться на разных ядрах процессора. Посмотреть на потоки можно с помощью программы Process Explorer.

  • два стека: для режима ядра и для пользовательского режима;
  • локальную памятью потока (TLS, Thread-Local Storage);
  • уникальный идентификатор потока (TID, Thread ID).

Приложение может создать дополнительный поток, например, когда у приложения есть графический интерфейс, который работает в одном потоке и ожидает от пользователя ввода каких-то данных, а второй поток в это время занимается обработкой других данных.

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

Волокна и планирование пользовательского режима

Потоки выполняются на центральном процессоре, а за их переключение отвечает планировщик ядра. В связи с тем что такое переключение это затратная операция. В Windows придумали два механизма для сокращения таких затрат: волокна (fibers) и планирование пользовательского режима (UMS, User Mode Scheduling).

Во-первых, поток с помощью специальной функции может превратится в волокно, затем это волокно может породить другие волокна, таким образом образуется группа волокон. Волокна не видимы для ядра и не обращаются к планировщику. Вместо этого они сами договариваются в какой последовательности они будут обращаться к процессору. Но волокна плохо реализованы в Windows, большинство библиотек ничего не знает о существовании волокон. Поэтому волокна могут обрабатываться как потоки и начнутся различные сбои в программе если она использует такие библиотеки.

Потоки UMS (User Mode Scheduling), доступные только в 64-разрядных версиях Windows, предоставляют все основные преимущества волокон при минимуме их недостатков. Потоки UMS обладают собственным состоянием ядра, поэтому они «видимы» для ядра, что позволяет нескольким потокам UMS совместно использовать процессор и конкурировать за него. Работает это следующим образом:

  • Когда двум и более потокам UMS требуется выполнить работу в пользовательском режиме, они сами могут периодически уступать управление другому потоку в пользовательском режиме, не обращаясь к планировщику. Ядро при этом думает что продолжает работать один поток.
  • Когда потоку UMS все таки нужно обратиться к ядру, он переключается на специально выделенный поток режима ядра.

Задания

Задания Windows (Job) позволяют объединить несколько процессов в одну группу. Затем можно этой группой управлять:

  • устанавливать лимиты (на память или процессорное время) для группы процессов входящих в задание;
  • останавливать, приостанавливать, запускать такую группу процессов.

Посмотреть на задания можно с помощью Process Explorer.

Диспетчер задач

Чаще всего для получения информации о процессе мы используем «Диспетчер задач». Запустить его можно разными способами:

  • комбинацией клавиш Ctrl+Shift+Esc;
  • щелчком правой кнопкой мыши на панели задач и выборе «Диспетчер задач»;
  • нажатием клавиш Ctrl+Alt+Del и выборе «Диспетчер задач»;
  • запуском исполняемого файла C:\Windows\system32\Taskmgr.exe.

При первом запуске диспетчера задач он запускается в кратком режиме, при этом видны только процессы имеющие видимое окно. При нажатие на кнопку «Подробнее» откроется полный режим:

Краткий режим Диспетчера задач

В полном режиме на вкладке «Процессы» виден список процессов и информация по ним. Чтобы получить больше информации можно нажать правой кнопкой мышки на заголовке и добавить столбцы:

Диспетчер задач - Добавление столбцов с информацией

Чтобы получить еще больше информации можно нажать правой кнопкой мышки на процессе и выбрать «Подробно». При этом вы переключитесь на вкладку «Подробности» и этот процесс выделится.

На вкладке «Подробности» можно получить ещё больше информации о процессе. А также здесь также можно добавить колонки с дополнительной информацией, для этого нужно щелкнуть правой кнопкой мыши по заголовку и нажать «Выбрать столбцы»:

Выбор столбцов с информацией о процессах на вкладке «Подробности»

Process Explorer

Установка и подготовка к работе

Более подробную информацию о процессах и потоках можно получить с помощью программы Process Explorer из пакета Sysinternals. Его нужно скачать и запустить.

Некоторые возможности Process Explorer:

  • информация по правам процесса: кто владелец процесса, у кого есть доступ к нему;
  • выделение разными цветами процессов и потоков, для удобного восприятия информации:
    • процессы служб – розовый;
    • ваши собственные процессы – синий;
    • новые процессы – зелёный;
    • завершенные процессы – красный;
    • число дескрипторов у процесса;
    • активность потоков в процессе;
    • подробную информация о распределении памяти.

    Запустите Process Explorer:

    Process Explorer

    Предупреждение о не настроенных символических именах

    Для начала скачиваем установщик «Пакет SDK для Windows 10».

    Устанавливать все не нужно, достаточно при установки выбрать “Debugging Tools for Windows“:

    Установка SDK для Windows 10

    Для настройки символических имен перейдите в меню Options / Configure / Symbols. Введите путь к библиотеке Dbghelp.dll, которая находится внутри установленного «Пакета SDK для Windows 10» по умолчанию:

    • C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\Dbghelp.dll.

    И путь к серверу символической информации:

    Некоторые основные настройки Process Explorer:

    • Смена цветового выделения – Options / Configure Colors.
    • Выбор колонок с информацией о процессах – View / Select Columns.
    • Сортировка процессов – нужно щелкнуть на заголовке столбца Process, при первом щелчке сортировка будет в алфавитном порядке, при втором в обратном порядке, при третьем вернется в вид дерева.
    • Просмотр только своих процессов – View / снять галочку Show Processes from All Users.
    • Настройка времени выделения только что запущенных процессов и завершённых – Options / Difference Highlight Duration / введите количество секунд.
    • Чтобы исследователь процесс подробнее можно дважды щелкнуть на нем и посмотреть информацию на различных вкладках.
    • Открыть нижнюю панель для просмотра открытых дескрипторов или библиотек – Vies / Show Lower Panel.

    Потоки в Process Explorer

    Потоки отдельного процесса можно увидеть в программе Process Explorer. Для этого нужно дважды кликнуть по процессу и в открывшемся окне перейти на вкладку «Threads»:

    Process Explorer (потоки процесса)

    В колонках видна информация по каждому потоку:

    • TID — идентификатор потока.
    • CPU — загрузка процессора.
    • Cycles Delta — общее количество циклов процессора, которое этот процесс использовал с момента последнего обновления работы Process Explorer. Скорость обновления программы можно настроить, указав например 5 минут.
    • Suspend Count — количество приостановок потока.
    • Service — название службы.
    • Start Address — начальный адрес процедуры, который начинает выполнение нового потока. Выводится в формате:«модуль!функция».

    При выделении потока, снизу показана следующую информация:

    • Идентификатор потока.
    • Время начала работы потока.
    • Состояние потока.
    • Время выполнения в режиме ядра и в пользовательском режиме.
    • Счетчик переключения контекста для центрального процессора.
    • Количество циклов процессора.
    • Базовый приоритет.
    • Динамический приоритет (текущий).
    • Приоритет ввода / вывода.
    • Приоритет памяти.
    • Идеальный процессор (предпочтительный процессор).

    Есть также кнопки:

    Задания в Process Explorer

    Process Explorer может выделить процессы, управляемые заданиями. Чтобы включить такое выделение откройте меню «Options» и выберите команду «Configure Colors», далее поставьте галочку «Jobs»:

    Process Explorer — выделение заданий

    Более того, страницы свойств таких процессов содержат дополнительную вкладку Job с информацией о самом объекте задания. Например приложение Skype работает со своими процессами как за заданием:

    Process Explorer — вкладка Job

    Запустите командную строку и введите команду:

    Таким образом вы запустите еще одну командную строку от имени этого пользователя. Служба Windows, которая выполняет команды runas, создает безымянное задание, чтобы во время выхода из системы завершить процессы из задания.

    В новой командной строке запустите блокнот:

    Далее запускаем Process Explorer и находим такое дерево процессов:

    Устройство Windows. Задания, изображение №3

    Как видим, процесс cmd и notepad это процессы связанные с каким-то заданием. Если дважды кликнуть по любому из этих процессов и перейти на вкладку Job, то мы увидим следующее:

    1)Запустив программу Process Explorer, мы увидели список процессов, как только мы открываем несколько приложений, то информация о них, добавляется в этот список.

    2)Далее мы запускаем диспетчер задач. Ниже приведена таблица сравнения возможностей:

    Process explorer
    + -
    Показывает DLL и handles Более сложный интерфейс, из-за чего не подходит простым пользователям
    Показывает процессы, от родительского Не показывает задачи, а только процессы
    Показывает PID процессов.
    Разделяет процессы по группам, методом выделения соответствующим цветом.
    № 12 Показать дерево пользовательских процессов Дефрагментация диска Определить используемые DLL (5-6 штук)

    1. Показать дерево пользовательских процессов.

    Чтобы показать дерево пользовательских процессов надо:

    1) Сначала нажать View – Show Process Tool

    2) После чего в том же меню убрать галку около строки Show Processes From All users

    2. Опишите один из системных процессов (выпишите основные характеристики процесса).

    Системный процесс taskhost.exe

    3) Description: Хост-процесс для задач Windows

    4) Company Name: Microsoft Corporation

    5) Set priority: Normal 8

    3. Запустите указанное приложение.

    Через свойства диска С в моём компьютере, запускаем Дефрагментацию диска.

    4. Выполните действие согласно варианту. (Определить используемые DLL)

    1) Для открытия окна которое, показывает список DLL файлов, нужно

    в меню View – Lower Pane View – DLLs.

    2) Теперь у нас открыто окно, для отображения DLL, далее выбираем нужный процесс.

    3) К сожжению процесс Дефрагментации диска (dfrgui.exe), почему-то DLL не показал, поэтому рассмотрим DLL процесса Skype.exe



    5. Принудительно завершите созданный процесс.

    Для принудительного завершения данного процесса, надо в контекстном меню выбрать графу KILL, после чего в списке он отобразиться красным светом, и исчезнет из него.

    Контрольные вопросы:

    Что такое процесс?

    Процесс это единица активности в ОС, которая характеризуется, единой цепосной последовательностью действий, в текущем состоянии и необходимом набором системных ресурсов.

    Из чего состоит процесс?

    Процесс состоит из:

    1) Код программы

    2) Данные программы

    Что такое контекст процесса?

    Контекст: содержание различных регистров ЦП; приоритет процесса; информация об ожидаемых событиях и перечень предоставленных процессу ресурсов.

    Своими словами объясните, что такое handles.

    Это список открытых процессом файлов.

    Своими словами объясните, что такое DLL.

    Это библиотеки и приложения, доступные данному процессу.

    Что такое приоритет?

    Это некоторое числовое значение, которое влияет на место процесса в очереди.

    Что такое PID?

    Это идентификационный номер процесса.

    В чем главное преимущество стандартного Диспетчера Задач по сравнению с утилитой ProcExp?

    В простом интерфейсе. Т.к. он создан для простого пользователя ПК, то нет тех характеристик, которые пользователь, всё равно не понял бы.

    Перечислите с пояснениями параметры процесса, отраженные во вкладке Environment в свойствах процесса.

    Название работы: Управление процессами в Windows

    Категория: Практическая работа

    Предметная область: Информатика, кибернетика и программирование

    Описание: Практическая работа № Управление процессами в Windows. Цель работы: изучение возможностей контроля и управления процессами в операционных системах Windows научиться работать с Диспетчером задач ознакомиться с управлением процессами в ОС Windows с помощью утилиты Process Explorer. .

    Дата добавления: 2013-04-26

    Размер файла: 26.78 KB

    Работу скачали: 149 чел.

    Управление процессами в Windows .

    Цель работы : изучение возможностей контроля и управления процессами в операционных системах Windows, научиться работать с Диспетчером задач, ознакомиться с управлением процессами в ОС Windows с помощью утилиты Process Explorer.

    Для правильного выполнения той или иной задачи в Windows необходимо, чтобы была запущена та или иная программа. В данной работе вы ознакомитесь с минимальным набором программ, которые должны быть запущены для корректной работы Windows . Для того чтобы увидеть полный список выполняемых задач в данный момент можно воспользоваться Диспетчером задач Windows или любой другой аналогичной программой (утилиты Process Explorer (procexp.exe.)). В этой работе мы ознакомимся только с Диспетчером задач, который можно запустить нажатием комбинации CTRL + ALT + DELETE .

    В Диспетчере задач отображаются сведения о программах и процессах, выполняемых на компьютере.

    На вкладке Приложения отображается состояние выполняющихся на компьютере программ. На этой вкладке имеется возможность завершить или запустить программу, а также перейти в окно программы. На вкладке Процессы отображаются сведения о выполняющихся на компьютере процессах. Например, допускается отображение сведений об использовании ЦП и памяти, ошибках страницы, счетчике дескрипторов и некоторые другие параметры.

    На вкладке Быстродействие динамически отображаются следующие сведения о быстродействии компьютера.

    1. Графики загрузки ЦП и использования памяти.
    2. Общее число дескрипторов, процессов, выполняющихся на компьютере.
    3. Общий объем физической памяти, памяти ядра и выделения памяти в килобайтах.

    Если имеется подключение к сети, можно просматривать состояние сети и параметры ее работы.

    Для того чтобы увидеть все программы, загруженные в оперативную память нужно перейти с вкладки Приложения на вкладку Процессы.

    Перечисленные здесь процессы - это программы, которые на данный момент загружены в оперативную память. Это могут быть специальные служебные программы, без которых Windows не будет работать, программы, отвечающие за предоставление каких либо услуг, например сверка системного времени с сервером времени в сети Internet , и т.д. В ниже приведённой таблице есть сведения о названии некоторых процессов и назначение данной программы.

    Процесс Бездействие системы представляет собой отдельный поток, выполняющийся на каждом процессоре и имеющий единственную задачу - заполнение процессорного времени, когда система не обрабатывает другие потоки. В Диспетчере задач данный процесс занимает большую часть процессорного времени.

    Программа проводник, отвечает за отображение на экране рабочего стола, открытие главного меню (если открываете окно проводника, появляется ещё один процесс)

    Программа отвечает за очередь печати (постановка документов в очередь, удаление очереди отслеживание количества напечатанных листов)

    Позволяет настраивать расписание автоматического выполнения задач на этом компьютере.

    Управляет объектами папки ''Сеть и удаленный доступ к сети'', отображающей свойства локальной сети и подключений удаленного доступа.

    Управляет синхронизацией даты и времени на всех клиентах и серверах в сети. Если эта служба остановлена, синхронизация даты и времени не будет доступна.

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

    Позволяет удаленным пользователям изменять параметры реестра на этом компьютере.

    Управляет местной и удаленной отладкой для отладчиков Visual Studio

    Хранит информацию о безопасности для учетной записи локального пользователя.

    Программа входа в систему Windows NT

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

    Управление процессами и потоками в ОС Windows с помощью утилиты Process Explorer фирмы SysInternals .

    Утилита показывает не просто список активных процессов, но и файлы динамических библиотек, связанные с процессом, приоритет процесса, нагрузку на процессор отдельно для каждой программы и т.д.

    Помимо этого, с помощью программы можно изменить приоритет процесса, просмотреть информацию о DLL-файле и принудительно завершить безнадежно зависшую программу.

    Утилита содержит 2 окна. В верхнем отображается список активных процессов (в т.ч. идентификатор процесса - PID, процент загрузки процессора - CPU, описание - Description, наименование аккаунта владельца - Owner, приоритет процесса - Priority, Handles, Windows Title). Информация, показываемая в нижнем окне, зависит от режима Process Explorer - если он находится в режиме handle mode, Вы можете видеть handles (файлы для Windows 9x/Ме), которые открыл процесс, выбранный в верхнем окне; если это режим DLL (DLL mode) - Вы можете видеть DLL, которые загрузил данный процесс.

    Переключение между режимами осуществляется "горячими клавишами" или с помощью соответствующих пунктов меню:

    Вы можете сортировать процессы по любому критерию, щелкая мышкой на соответствующей колонке; либо представить процессы в виде дерева процессов (process tree) путем выбора пункта меню View - Show Process Tree.

    Щелкнув правой кнопкой мыши по выбранному процессу, с помощью появившегося контекстного меню Вы можете изменить базовый приоритет процесса (Set Priority), принудительно завершить процесс (Kill Process) и просмотреть дополнительные параметры процесса (Properties):

    С помощью пункта меню Options - Highlight Services можно выделить процессы, которые обслуживают хост. Для выделения процессов текущего пользователя выберите пункт меню Options - Highlight Own Processes.

    Запустив утилиту, запустите несколько приложений (например, Far, Word, Paint, Notepad и т.д.), обратите внимание на изменения в окне процессов. Прокомментируйте их. Приведите копию экрана и опишите процесс, порожденный запущенным приложением.

    Задания для выполнения :

    1. На вкладке Процессы Диспетчера задач измените количество столбцов, запишите выполненные для этого операции. Какие из процессов запущены Пользователем?

    2. Сколько процессов активно на момент выполнения практической работы, на сколько загружен центральный процессор, какой объем памяти выделен на текущие процессы?

    3. Просмотреть справочную систему Диспетчера задач. Найти информацию о запуске новых программ, завершении текущих программ с использованием Диспетчера и выписать в тетрадь.

    4. Выполните следующие действия с помощью утилиты Process Explorer . Отсортируйте процессы по заданному критерию. Опишите один из системных процессов. Запустите указанное приложение. Опишите возникший процесс по заданным характеристикам. Принудительно завершите указанный процесс. Выполняемые действия иллюстрируйте копиями экранов.

    Process Explorer – альтернатива стандартному Task Manager-у. Эта утилита, как и многие другие утилиты Sysinternals, здорово расширяет возможности контроля и управления системой. Главное новшество только что вышедшей 14-ой версии — возможность мониторить сетевую активность процессов. Далее небольшой обзор возможностей этой утилиты, которые считаю наиболее полезными для себя.

    Для справки. С 2006 года Sysinternals была приобретена Microsoft, а ключевая фигура этой компании – Марк Руссинович с тех пор работает в Microsoft. Марк известен своими утилитами, книгой Windows Internals, блогом и является признанным специалистом по архитектуре Windows.

    • Колонки в главном окне
    • Сервисы внутри svchost
    • Суммарные графики активности, процесс с максимальной активностью
    • Суммарные графики активности в трее, процесс с максимальной активностью
    • Сетевые соединения процесса
    • Потоки процесса, их активность, стек потока с загрузкой символов
    • Информация по использованию памяти в системе
    • Handles и DLL процесса
    • Поиск handles и DLL

    Колонки в главном окне

    1

    2

    1. Имя процесса
    2. Владелец процесса, я использую сортировку по этому полю, чтобы первыми шли пользовательские процессы, потом системные
    3. Загрузка CPU процессом
    4. Суммарное затраченное время CPU, интересно иногда обращать на это внимание, полезен для таймирования
    5. Private bytes — объем занимаемой процессом памяти (реально выделенные страницы, исключая shared)
    6. Peak private bytes — пиковое значение Private bytes, интересно иногда взглянуть до чего дело доходило
    7. I/O read bytes — суммарный объем считанных с диска данных, по изменению видна активность
    8. I/O write bytes — суммарный объем записанных на диск данных, по изменению видна активность
    9. Network receive bytes — суммарный объем считанных из сети данных, по изменению видна активность
    10. Network send bytes — суммарный объем переданных в сеть данных, по изменению видна активность
    11. Описание процесса
    12. Название компании
    13. Полный путь к образу процесса (тут можно точно понять откуда стартовал процесс)
    14. Командная строка запуска процесса

    Сервисы внутри svchost

    При наведении курсора на svchost (процесс который хостит в себе сервисы) можно видеть перечень сервисов – довольно полезная фича.

    ScreenShot00243

    Суммарные графики активности, процесс с максимальной активностью

    Сверху основного окна расположены графики основных суммарных параметров – память, дисковая, сетевая и CPU активность. При перемещении курсора по истории параметра, показан процесс который дал максимальный вклад в это значение в данный момент времени. Кроме того в тултипе есть информация о мгновенном значении параметра (зависит от частоты обновления). На следующей картинке — график сетевой активности.

    ScreenShot00239

    В окне «system information» графики собраны вместе, здесь удобнее смотреть корреляцию параметров.

    ScreenShot00262

    Суммарные графики активности в трее, процесс с максимальной активностью

    Очень удобная фича – выведение в трей иконок с графиками суммарной активности. Там могут быть графики дисковой активности, CPU и память. Я использую первые два – поглядываю туда, при возникновении вопросов достаточно навести курсор и узнать какой процесс дает максимальный вклад в параметр. К сожалению сетевую активность туда нельзя выставить, я надеюсь это вопрос времени.

    ScreenShot00240
    ScreenShot00241

    Сетевые соединения процесса

    В свойствах процесса в закладке TCP/IP можно посмотреть текущие активные соединения. К сожалению сетевая активность по ним не видна, эта функциональность пока доступна в другой утилите – tcpview.

    ScreenShot00254

    Потоки процесса, их активность, стек потока с загрузкой символов

    В свойствах процесса в закладке threads видны все его потоки и загрузка CPU по потокам. Допустим хочется рассмотреть стек потока, который интенсивно что-то делает или висит. Для этого сперва надо его распознать, допустим по загрузке CPU, потом полезно приостановить процесс, чтобы спокойно рассмотреть его состояние — это можно сделать прямо в этом окне по кнопке “suspend”. Далее выделяем поток и нажимаем “stack”. В большинстве случаев стек будет начинаться в недрах системы и обрываться не совсем понятным образом. Дело в том, что не имея отладочной информации по системным библиотекам не удастся корректно развернуть стек и разобраться в нем. Есть решение – нужно сконфигурировать доступ с символьной информации с сайта Microsoft. Надо проделать несколько шагов:

    ScreenShot00256

    Информация по использованию памяти в системе

    В окне «system information» закладка «memory». Здесь есть два графика – commit и physical. Physical – использование физической памяти без учета файлового кэша, под который уходит все что остается. Commit – сколько памяти выделено для процессов включая используемую виртуальную память. Под графиками в разделе «Commit Charge» есть поля Limit и Peak. Limit определяется суммой физической и виртуальной памяти, т.е. это максимальный суммарный объем памяти, который может выделить система. Peak – это максимум графика Commit за время работы утилиты. Процентные соотношения Current/Limit и Peak/Limit удобны для быстрой оценки насколько состояние системы приближалось к критическому лимиту по доступной памяти.

    ScreenShot00257

    Handles и DLL процесса

    В главном окне можно включить разделитель и снизу отображать DLL или handles выделенного процесса. При борьбе с вирусами и отладке программ это бывает очень полезно. На картинке — список handles для opera, первый handle файловой системы – это flash ролик в временном каталоге.

    ScreenShot00258

    Для DLL можно добавить колонку с полным путем к образу, отсортировав по нему, проанализировать нет ли каких подозрительных модулей. На картинке видно, что подключен модуль от Logitech, есть подозрение что это что-то типа хука внедряющегося во все процессы. Следующим пунктом посмотрим где он еще встречается.

    ScreenShot00259

    Поиск handles и DLL

    Поиск по имени handle или DLL во всех процессах. Вводим имя DLL от Logitech из предыдущего пункта и убеждаемся что подключается он почти везде.

    ScreenShot00260

    Другой пример – надо понять, кто блокирует файл или работает с папкой. Вводим часть пути и находим все процессы, которые открыли подобные объекты системы. Можно щелкнуть на элементе из списка и перейти к процессу, при этом будет подсвечен соответствующий handle или DLL.

    ScreenShot00261

    PS Для отображения некоторых полей (например сетевая статистика) требуются административные привилегии. Повысить привилегии в уже запущенном Process Explorer можно с помощью команды в меню File. Только при наличии таких привилегий есть возможность добавить такие колонки. Я считаю такое поведение неверным, т.к. скрывает потенциальные возможности приложения от пользователя. Если поля добавлены и при следующем запуске нет административных прав, то они будут пустыми. Можно задать ключ "/e" в командной строке, чтобы форсировать поднятие привилегий при старте Process Explorer.

    Цель работы: изучение возможностей контроля и управления процессами в операционных системах Windows, научиться работать с «Диспетчером задач», ознакомиться с управлением процессами в ОС Windows с помощью утилиты «Process Explorer».

    Оборудование : Компьютер в сборе или испытательный стенд.

    1. Ознакомиться с теоретической частью.

    2. Выполнить задания.

    3. Ответить на контрольные вопросы.

    4. Оформить отчет.

    Теоретическая часть

    Для правильного выполнения той или иной задачи в Windows необходимо, чтобы была запущена та или иная программа. Для того чтобы увидеть полный список выполняемых задач в данный момент можно воспользоваться «Диспетчером задач» Windows или любой другой аналогичной программой (например, утилитой Process Explorer). «Диспетчер задач» можно запустить нажатием комбинации Ctrl + Alt + Delete , ПКМ на панели задач или командой taskmgr . exe через командную строку.

    В «Диспетчере задач» отображаются сведения о программах и процессах, выполняемых на компьютере.

    На вкладке «Приложения» отображается состояние выполняющихся на компьютере программ. На этой вкладке имеется возможность завершить или запустить программу, а также перейти в окно программы. На вкладке «Процессы» отображаются сведения о выполняющихся на компьютере процессах. Например, допускается отображение сведений об использовании ЦП и памяти, ошибках страницы, счетчике дескрипторов и некоторые другие параметры.

    На вкладке «Быстродействие» динамически отображаются следующие сведения о быстродействии компьютера.

    - графики загрузки ЦП и использования памяти.

    - общее число дескрипторов, процессов, выполняющихся на компьютере.

    - общий объем физической памяти, памяти ядра и выделения памяти в килобайтах.

    Если имеется подключение к сети, можно просматривать состояние сети и параметры ее работы.

    Для того чтобы увидеть все программы, загруженные в оперативную память нужно перейти на вкладку «Процессы». Перечисленные здесь процессы - это программы, которые на данный момент загружены в оперативную память. Это могут быть специальные служебные программы, без которых Windows не будет работать, программы, отвечающие за предоставление каких либо услуг, например сверка системного времени с сервером времени в сети Internet , и т.д. Сведения о некоторых процессах приведены в таблице.

    Процесс отвечает за окна консоли, за создание и удаление потоков, а также частично за работу 16-битной среды MS-DOS. Он относиться к подсистеме Win32 пользовательского режима (WIN32.SYS же относиться к ядру Kernel) и должен всегда выполняться.

    Программа проводник, отвечает за отображение на экране рабочего стола, открытие главного меню (если открываете окно проводника, появляется ещё один процесс)

    Хранит информацию о безопасности для учетной записи локального пользователя

    Управляет местной и удаленной отладкой для отладчиков Visual Studio

    Отвечает за службу планирования Schedule, которая предназначена для запуска различных приложений в определённое пользователем время

    Программа отвечает за очередь печати (постановка документов в очередь, удаление очереди отслеживание количества напечатанных листов)

    Диспетчер сеансов запускает высокоуровневые подсистемы и сервисы. Процесс отвечает за различные действия, например запуск Winlogon и Win32 процессов, а также за операции с системными переменными. Когда Smss определяет, что Winlogon или Csrss закрыты, он автоматически выключает систему

    Позволяет настраивать расписание автоматического выполнения задач. Управляет объектами папки ''Сеть и удаленный доступ к сети'', отображающей свойства локальной сети и подключений удаленного доступа. Управляет синхронизацией даты и времени на всех клиентах и серверах в сети. Обеспечивает поддержку общий доступ к файлам, принтерам и именованным каналам для данного компьютера через сетевое подключение. Позволяет удаленным пользователям изменять параметры реестра.

    Выполняет все потоки ядра Kernel.

    Программа входа в систему Windows NT

    Процесс «Бездействие системы» представляет собой отдельный поток, выполняющийся на каждом процессоре и имеющий единственную задачу - заполнение процессорного времени, когда система не обрабатывает другие потоки. В «Диспетчере задач» данный процесс занимает большую часть процессорного времени.

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

    Управление процессами и потоками в ОС Windows с помощью утилиты Process Explorer .

    Утилита показывает список активных процессов, файлы динамических библиотек, связанные с процессом, приоритет процесса, нагрузку на процессор отдельно для каждой программы и т.д. С помощью программы можно изменить приоритет процесса, просмотреть информацию о DLL-файле и принудительно завершить безнадежно зависшую программу.

    Утилита содержит два окна. В верхнем отображается список активных процессов (в т.ч. идентификатор процесса - PID, процент загрузки процессора - CPU, описание - Description, наименование аккаунта владельца - Owner, приоритет процесса - Priority, Handles, Windows Title). Информация, показываемая в нижнем окне, зависит от режима Process Explorer - если он находится в режиме handle mode, Вы можете видеть handles (файлы для Windows 9x/Ме), которые открыл процесс, выбранный в верхнем окне; если это режим DLL (DLL mode) - Вы можете видеть DLL, которые загрузил данный процесс.

    Переключение между режимами осуществляется "горячими клавишами" или с помощью соответствующих пунктов меню.

    Можно сортировать процессы по любому критерию, щелкая мышкой на соответствующей колонке; либо представить процессы в виде дерева процессов (process tree) путем выбора пункта меню View - Show Process Tree.

    Щелкнув ПКМ по выбранному процессу, с помощью появившегося контекстного меню можно изменить базовый приоритет процесса (Set Priority), принудительно завершить процесс (Kill Process) и просмотреть дополнительные параметры процесса (Properties):

    С помощью пункта меню Options - Highlight Services можно выделить процессы, которые обслуживают хост. Для выделения процессов текущего пользователя нужно выбрать пункт меню Options - Highlight Own Processes.

    Благодаря своим уникальным возможностям, программа Process Explorer полезна для разрешения проблем с версиями библиотек DLL и утечками дескрипторов, а также для понимания принципов работы ОС Windows и приложений.

    Задания на лабораторную работу

    1. На вкладке «Процессы» «Диспетчера задач» измените количество столбцов, запишите выполненные для этого операции. Какие из процессов запущены Пользователем?

    2. Сколько процессов активно на момент выполнения практической работы, насколько загружен центральный процессор, какой объем памяти выделен на текущие процессы?

    3. Просмотреть справочную систему «Диспетчера задач». Найти информацию о запуске новых программ, завершении текущих программ. После изучения «Диспетчера задач»:

    - потренируйтесь в завершении и повторном запуске процессов;

    - изучите мониторинг загрузки и использование памяти;

    - запустите новые процессы при помощи диспетчера, используя, например, команды: cmd, msconfig, notepad и др.

    4. Запустив утилиту Process Explorer , запустите несколько приложений (например, Word, Paint, Notepad и т.д.), обратите внимание на изменения в окне процессов. Прокомментируйте их. Приведите копию экрана и опишите процесс, порожденный запущенным приложением.

    5. Выполните следующие действия с помощью утилиты Process Explorer . Отсортируйте процессы по заданному критерию. Опишите один из системных процессов (из таблицы в теоретической части) согласно своему номеру по журналу. Запустите указанное приложение. Опишите возникший процесс по заданным характеристикам. Принудительно завершите указанный процесс. Выполняемые действия иллюстрируйте копиями экранов.

    Читайте также: