GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo diferencia Linux los hilos de los procesos secundarios?

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.


  1. 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".

  2. 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 a ps 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 a ps para mostrar hilos individuales
    • el f le dice a ps para formatear la salida como una lista de formato completo y junto con el L argumento, las columnas NLWP (número de subprocesos) y LWP (ID de subproceso) se agregan a la salida.

Linux
  1. Linux:¿cómo ejecutar un gestor de arranque desde Linux?

  2. ¿Cómo funciona internamente copy_from_user del kernel de Linux?

  3. ¿Cómo calcular la utilización de la CPU de un proceso y todos sus procesos secundarios en Linux?

  4. ¿Se implementan los subprocesos como procesos en Linux?

  5. ¿Cómo excluir a algunos usuarios de la pantalla superior de Linux?

Cómo crear un montaje a partir de imágenes en Linux

Cómo acceder a las particiones de Linux desde Windows 10

Cómo personalizar el comando superior de Linux

Cómo quitar un comando del historial en Linux

Cómo instalar software desde la fuente en Linux

Cómo encontrar los principales procesos en ejecución por memoria y uso de CPU en Linux