Потоки - програма абстракції для паралельного виконання в сучасних OS. З багатопотоковим виконанням програми відбувається наступне: адресний простір оперативної пам'яті та відкриті файли діляться між потоками з тією метою, щоб мінімізувати накладні витрати та більш ефективно використовувати процесорний час. Усе це робить багатопотокове виконання ефективним і корисним механізмом. Переглядати потоки можна за допомогою інструментів командного рядка ps
і top
. Далі розглянемо, як це зробити в операційній системі Linux.
У Linux передбачено два способи налагодження багатопотокових процесів для виконання певної дії. Один із них - коли процес створює свої копії за допомогою механізму fork і потім ці процеси взаємодіють через сокети або IPC. Т. Користувач отримує процеси, які займають ресурси та певний обсяг пам'яті. Наступний спосіб це виділення потоків у межах одного процесу. Так усі потоки одного процесу матимуть один ідентифікатор групи потоків, а також унікальний ідентифікатор. Тобто, вони матимуть доступ до всіх ресурсів батьківського процесу і займатимуть менше пам'яті.
У цій програмі потоки процесів активуються однією командою - T
. У такий спосіб можна подивитися всі потоки процесу з PID для Chromium:
$ ps -T -p
У колонці SPID відображається ідентифікатор потоку, а в CMD його ім'я.
За допомогою утиліти top легко переглядати потоки в реальному часі. Для цього необхідно запустити top з опцією -H
. Є можливість увімкнути або вимкнути показ потоків під час виконання за допомогою клавіші H:
$ top -H
Якщо потрібно подивитися тільки потоки потрібного процесу використовуйте:
$ top -H -p pid
Як бачимо, користуватися top зовсім просто.
Однак найзручнішою утилітою для перегляду потоків по праву вважається HTOP. Це основний на ncurces інтерактивний інструмент перегляду процесів. З його допомогою ви можете спостерігати за потоками в реальному часі у вигляді дерева.
Для цього необхідно ввімкнути перегляд потоків у htop: насамперед відкрийте програму, увійдіть у меню, натиснувши клавішу F2, потім виберіть Display Options, у розділі Setup. Тепер відзначте Three view і Show custom thread names. Усе, можна натискати F10 для збереження налаштувань:
На цьому все. Так ви можете переглядати потоки у вигляді дерева окремо для кожного процесу. Тут знову відображаються потоки для браузера Chromium: