Что из этого является потоками?
Доброго времени суток.
Не могу разобраться, что из этого является именно потоками, и как их вообще отличать от процессов.
Самой системы Linux на PC нет, опираюсь на скриншоты. Именно этот сделан в командной строке с "top H".
Очень надеюсь на Вашу помощь, т.к. сам разобраться не смог, да и в сети что-то так и не нашел однозначного ответа на то, как их отличать.









Ответы - Что из этого является потоками? / Что из этого является потоками?

14.03.2018 07:35:05
Потоки чисто технически не отличаются от процессов - при создании потока создается новый процесс, который наследует ту же память и дескрипторы, что и родитель. Чтобы увидеть такие процессы, нужно слегка настроить htop
Поставив эти галочки, получим вот такой вывод:
Красным отмечены дочерние потоки, которые насоздавала suricata
. Вы можете видеть, что фактически, это отдельные процессы с разными PID
. Но при этом, графы, касающиеся используемой памяти, у них заполнены идентично - что подтверждает мое первое утверждение - процесс, реализующий поток наследует от родителя дескрипторы и память.



14.03.2018 01:18:46
Есть два внешних признака, позволяющие отличить процесс от потока.
- У всех потоков одного процесса PPID (родитель) совпадают. Но любой процесс может порождать и процессы и потоки. Поэтому, надо использовать критерий № 2:
- У всех потоков одного процесса совпадает командная строка, из которой они были запущены. Все потоки запускаются из ОДНОГО исполняемого файла. А вот процессы, как правило, из разных.
На картинке, которую Вы прилагаете нет ни PPID ни командной строки. Поэтому, я думаю, эта задача неразрешима. Что бы на самом деле выполнить поиск потоков, рекомендую следующую последовательность действий:
ps -eLf > proc_list.txt
В полученном файле удаляем все колонки, кроме PID, PPID и command
Сортируем по полю PPID
Группируем по Command
Если в некоторой группе будет больше 1 строки, значит все дополнительные - потоки.