Z task_struct
perspektivu, vlákna procesu mají stejného vedoucího skupiny vláken (group_leader
v task_struct
), zatímco podřízené procesy mají jiného vedoucího skupiny vláken (každý jednotlivý podřízený proces).
Tyto informace jsou vystaveny uživatelskému prostoru prostřednictvím /proc
souborový systém. Rodiče a děti můžete sledovat pomocí ppid
pole v /proc/${pid}/stat
nebo .../status
(to dává nadřazený pid); vlákna můžete sledovat pomocí tgid
pole v .../status
(to dává id skupiny vlákna, což je také pid vedoucího skupiny). Vlákna procesu jsou viditelná v /proc/${pid}/task
adresář:každé vlákno má svůj vlastní podadresář. (Každý proces má alespoň jedno vlákno.)
V praxi jde o programy, které chtějí mít přehled o svých vlastních vláknech by spoléhali na rozhraní API poskytovaná knihovnou vláken, kterou používají, namísto použití informací specifických pro operační systém. Typicky na systémech podobných Unixu to znamená použití pthreads.
-
Tím se spustí
top
příkaz s několika dalšími možnostmi:top -H -b -n 1
-H
argument dává top pokyn k zobrazení každého jednotlivého vlákna. Normálně top shrnuje všechna vlákna pod jejich nadřazeným procesem.-b
argument umožňuje top run v dávkovém režimu – informace jsou shromážděny, zobrazeny a poté vypsány do stdout na rozdíl od spuštění v interaktivním režimu a obnovení zobrazených dat.- S
-b
uživatel musí topu sdělit, kolikrát se má spustit, to se provádí pomocí-n
argument a poslední argument s tím, kolikrát spustit.
Takže
top -H -b -n 1
instruuje systém, aby „spouštěl nahoře, zobrazoval jednotlivá vlákna, spouštěl v dávkovém režimu a spouštěl pouze jednou“. -
ps
příkaz hlásí snímek aktuálně běžících procesů.ps -eLf
-eLf
argument (lze použít jako-e -L -f
stejně) se dělí takto:e
říkáps
zobrazit všechny procesy bez ohledu na to, kdo je vlastní nebo jejich aktuální stav – aktivní, spící, pozastavené, čekající na I/O atd.L
říkáps
zobrazit jednotlivá vláknaf
říkáps
formátovat výstup jako plnoformátový výpis a ve spojení sL
argument se do výstupu přidají sloupce NLWP (počet vláken) a LWP (ID vlákna).