Desde una task_struct
perspectiva, los subprocesos de un proceso tienen el mismo líder de grupo de subprocesos ( group_leader
intask_struct
), mientras que los procesos secundarios tienen un líder de grupo de subprocesos diferente (cada proceso secundario individual).
Esta información está expuesta al espacio del usuario a través del /proc
sistema de archivos. Puede rastrear padres e hijos mirando el ppid
campo en /proc/${pid}/stat
o .../status
(esto le da al padre pid); puede rastrear hilos mirando el tgid
campo en .../status
(esto le da la identificación del grupo de hilos, que también es el pid del líder del grupo). Los subprocesos de un proceso se hacen visibles en el /proc/${pid}/task
directorio: cada subproceso obtiene su propio subdirectorio. (Cada proceso tiene al menos un hilo).
En la práctica, los programas que desean realizar un seguimiento de sus propios subprocesos dependerían de las API proporcionadas por la biblioteca de subprocesos que están utilizando, en lugar de utilizar información específica del sistema operativo. Típicamente en sistemas tipo Unix, eso significa usar pthreads.