¿Qué es un hilo de usuario y un hilo de núcleo?

13

Sé lo que es un hilo y sé cómo funcionan, pero estoy bastante confundido en cuanto a qué hilo de usuario y un hilo del kernel están en términos de lo que se les permite hacer.

¿Puede aclarar qué puede hacer un subproceso de usuario y qué puede hacer un subproceso de núcleo?

Fasih Khatib
fuente
1
Esta pregunta ya ha sido respondida en SO: stackoverflow.com/questions/5957570/kernel-space-vs-user-space
Shadok
Bueno, la pregunta ha sido formulada pero no se ha respondido correctamente. Todo lo que se contestó de las 5 o 6 cosas que la persona preguntó fue sobre el espacio de usuario y el espacio de Kernel.
Fasih Khatib
1
Creo que la definición de Dave Rager es concisa y precisa: "El espacio del núcleo y el espacio del usuario es la separación de las funciones privilegiadas del sistema operativo y las aplicaciones restringidas del usuario"
Shadok

Respuestas:

13

Un hilo del núcleo, a veces llamado LWP (Proceso ligero) es   Creada y programada por el núcleo. Los hilos del núcleo son a menudo más   costoso de crear que los hilos de usuario y las llamadas del sistema a directamente   Los hilos de creación de kernel son muy específicos de la plataforma.

Un hilo de usuario normalmente es creado por una biblioteca de hilos y   la programación está gestionada por la propia biblioteca de hilos (que se ejecuta en   modo de usuario). Todos los hilos de usuario pertenecen al proceso que los creó. los   La ventaja de los hilos de usuario es que son portátiles. El mayor   Se puede ver la diferencia al usar sistemas multiprocesador, subprocesos de usuario   completamente gestionado por la biblioteca de subprocesos no se puede ejecutar en paralelo   en las diferentes CPU, aunque esto significa que funcionarán bien en   Sistemas uniprocesadores. Dado que los hilos del kernel usan el programador del kernel,   Diferentes hilos del kernel pueden ejecutarse en diferentes CPUs. Muchos sistemas   Implementar el roscado de manera diferente,

Un modelo de subprocesamiento muchos a uno asigna muchos procesos de usuario directamente a uno   hilo del núcleo, el hilo del núcleo se puede considerar como el principal   proceso. Un modelo de subprocesamiento uno a uno asigna cada subproceso de usuario directamente   a un hilo del núcleo, este modelo permite el procesamiento paralelo en el   Sistemas multiprocesador. Cada hilo del núcleo puede ser considerado como un VP   (Proceso virtual) que es gestionado por el planificador.

Fuente: Respuestas

También puede encontrar información en wikipedia capítulo 3 - 3 Procesos, hilos del núcleo, hilos de usuario y fibras:

Hilo

Jason Paddle
fuente
No creo que sea una buena idea copiar, ya que aparentemente no sabemos exactamente de qué se trata el argumento y sin saber por completo la respuesta. ¿No se suele crear un LWP en la parte superior de un subproceso del núcleo como un puente entre este último y el subproceso del usuario? Además, esta respuesta es muy confusa porque sigue cambiando de terminología, y al final no se comprende si, por ejemplo, un subproceso del núcleo es un proceso, etc.
nbro