Смотрим потоки процесса в Linux

06.03.2021, 20:53

Потоки – программа абстракции для параллельного выполнения в современных ОС. С многопоточным выполнением программы происходит следующее: адресное пространство оперативной памяти и открытые файлы делятся между потоками с той целью, чтобы минимизировать накладные расходы и более эффективно использовать процессорное время. Все это делает многопоточное выполнение эффективным и полезным механизмом. Просматривать потоки можно при помощи инструментов командной строки ps и top. Дальше рассмотрим, как это сделать в операционной системе Linux.

Потоки процессов Linux

В Linux предусмотрены два способа отладки многопоточных процессов для выполнения определенного действия. Один из них – когда процесс создает свои копии с помощью механизма fork и затем эти процессы взаимодействуют через сокеты или IPC. Т. Пользователь получает процессы, которые занимают ресурсы и определенный объем памяти. Следующий способ это выделение потоков в рамках одного процесса. Так все потоки одного процесса будут иметь один идентификатор группы потоков, а также уникальный идентификатор. То есть, у них будет доступ ко всем ресурсам родительского процесса и они станут занимать меньше памяти.

Утилита PS

В этой программе потоки процессов активируются одной командой – T. Следующим образом можно посмотреть все потоки процесса с PID для Chromium:

$ ps -T -p

УТИЛИТА PS

В колонке SPID отображается идентификатор потока, а в CMD его имя.

Утилита TOP

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

$ top -H

Если нужно посмотреть только потоки нужного процесса используйте:

$ top -H -p pid

УТИЛИТА TOP

Как видим, пользоваться top совсем просто.

Утилита HTOP

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

Для этого необходимо включить просмотр потоков в htop: в первую очередь откройте программу, войдите в меню, нажав клавишу F2, затем выберите Display Options, в разделе Setup. Теперь отметьте Three view и Show custom thread names. Все, можно нажимать F10 для сохранения настроек:

 

УТИЛИТА HTOP

На этом все. Так вы можете просматривать потоки в виде дерева отдельно для каждого процесса. Здесь снова отображаются потоки для браузера Chromium:

 

потоки для браузера Chromium