Desde una task_structperspectiva, los subprocesos de un proceso tienen el mismo líder de grupo de subprocesos ( group_leaderintask_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 /procsistema de archivos. Puede rastrear padres e hijos mirando el ppidcampo en /proc/${pid}/stato .../status(esto le da al padre pid); puede rastrear hilos mirando el tgidcampo 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}/taskdirectorio: 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.