De un task_struct
perspectiva, los subprocesos de un proceso tienen el mismo líder de grupo de subprocesos (group_leader
en task_struct
), mientras que los procesos secundarios tienen un líder de grupo de subprocesos diferente (cada proceso secundario individual).
Esta información se expone al espacio del usuario a través de el /proc
sistema de archivos Puede rastrear padres e hijos mirando el ppid
campo en /proc/${pid}/stat
o .../status
(esto da el pid padre); puedes rastrear hilos mirando el tgid
campo en .../status
(esto da la identificación del grupo de subprocesos, que también es la identificación del líder del grupo). Los subprocesos de un proceso se hacen visibles en el /proc/${pid}/task
directorio:cada hilo tiene su propio subdirectorio. (Cada proceso tiene al menos un subproceso).
En la práctica, los programas que desean realizar un seguimiento de sus propios subprocesos confiaría en las API proporcionadas por la biblioteca de subprocesos que están usando, en lugar de usar información específica del sistema operativo. Por lo general, en sistemas similares a Unix, eso significa usar pthreads.
-
Esto ejecuta el
top
Comando con algunas opciones adicionales:top -H -b -n 1
- El
-H
El argumento indica a top que muestre cada subproceso individual. Normalmente, top resume todos los subprocesos bajo su proceso principal. - El
-b
El argumento hace que top se ejecute en modo por lotes:la información se recopila, se muestra y luego se vuelca en la salida estándar en lugar de ejecutarse en un modo interactivo y actualizar los datos que se muestran. - Con el
-b
opción, el usuario debe decirle a la parte superior cuántas veces ejecutar, esto se hace con el-n
argumento y un argumento final con cuántas veces ejecutar.
Entonces
top -H -b -n 1
le indica al sistema que "ejecute arriba, muestre subprocesos individuales, ejecute en modo por lotes y solo ejecute una vez". - El
-
El
ps
El comando informa una instantánea de los procesos que se están ejecutando actualmente.ps -eLf
El
-eLf
argumento (se puede usar como-e -L -f
también) se desglosa de la siguiente manera:e
le dice aps
para mostrar todos los procesos independientemente de quién sea su propietario o de su estado actual:activo, inactivo, en pausa, en espera de E/S, etc.L
le dice aps
para mostrar hilos individuales- el
f
le dice aps
para formatear la salida como una lista de formato completo y junto con elL
argumento, las columnas NLWP (número de subprocesos) y LWP (ID de subproceso) se agregan a la salida.