GNU/Linux >> Tutoriales Linux >  >> Linux

Id. de subproceso frente a identificador de subproceso

El ID es el identificador numérico único del subproceso que se ejecuta en el sistema. Un identificador de subproceso, como cualquier identificador de objeto del núcleo, puede verse como un tipo especial de puntero contado de referencia al objeto del núcleo.

Entonces, en el espacio del núcleo hay un objeto de tipo THREAD con ID =12345

Y debido a que desea hacer algo con el hilo, tiene un puntero en su espacio de direcciones llamado threadID con valor 44.

Tenga en cuenta que los diferentes identificadores del mismo objeto del núcleo tienen valores diferentes (dos punteros a un objeto) y que los objetos del núcleo pueden tener identificadores en más de un proceso.


La biblioteca pthread de Linux, que yo sepa, no tiene un concepto de identificador de subprocesos. pthread_create y otras funciones de pthreads, devuelven un ID de hilo.

En Windows, el identificador del subproceso es diferente del ID del subproceso, de la misma manera que el identificador de un archivo es diferente del nombre de un archivo.

El identificador del hilo es un token que le permite hacer algo con el hilo (normalmente esperarlo o matarlo). Win32 tiene estos tokens para muchos objetos y los llama HANDLE en general.

El token es esencialmente un puntero al subproceso en ejecución (o detenido) y tiene un conjunto de habilidades asociadas, por ejemplo, puede tener un identificador que le permita esperar, pero no eliminar, un subproceso. De la misma manera, podemos tener un identificador de archivo que sea de solo lectura.

Este nivel de direccionamiento indirecto puede o no ser útil, pero es la forma en que Win32 lo hace y es ampliamente consistente con la forma en que maneja otros tipos de objetos.


Los identificadores de subprocesos son progresivos (es decir, uno tras otro), que puede recorrer. Los identificadores de subprocesos, como la mayoría de los identificadores en Windows, en realidad son punteros. Puede, por ejemplo, establecer bits de propiedad de subproceso utilizando el identificador de subproceso, pero no el identificador de subproceso. .


Linux
  1. ¿Cómo manejar los interruptores en un script de Shell?

  2. Cómo terminar un subproceso en un programa C (ejemplo de pthread_exit)

  3. ¿Cómo nombrar un hilo en Linux?

  4. Subprocesos POSIX separados vs. conectables

  5. Acceder al subproceso local desde otro subproceso

¿Es seguro bifurcar desde dentro de un hilo?

Abrir un hilo de Python en una nueva ventana de consola

¿Qué hilo maneja la señal?

identificador de proceso en lldbinit

¿Qué sucede cuando un hilo se bifurca?

error de enrutamiento de linux?