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
topComando con algunas opciones adicionales:top -H -b -n 1- El
-HEl argumento indica a top que muestre cada subproceso individual. Normalmente, top resume todos los subprocesos bajo su proceso principal. - El
-bEl 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
-bopción, el usuario debe decirle a la parte superior cuántas veces ejecutar, esto se hace con el-nargumento y un argumento final con cuántas veces ejecutar.
Entonces
top -H -b -n 1le indica al sistema que "ejecute arriba, muestre subprocesos individuales, ejecute en modo por lotes y solo ejecute una vez". - El
-
El
psEl comando informa una instantánea de los procesos que se están ejecutando actualmente.ps -eLfEl
-eLfargumento (se puede usar como-e -L -ftambién) se desglosa de la siguiente manera:ele dice apspara 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.Lle dice apspara mostrar hilos individuales- el
fle dice apspara formatear la salida como una lista de formato completo y junto con elLargumento, las columnas NLWP (número de subprocesos) y LWP (ID de subproceso) se agregan a la salida.