Subprocesos: ¿Por qué se deben asignar todos los subprocesos de usuario a un subproceso de núcleo?

Así que dos preguntas aquí realmente. Primero, (y sí, ya he buscado esto, pero quería una aclaración), ¿cuál es la diferencia entre un hilo de usuario y un hilo de núcleo? ¿Es simplemente que uno es generado por un programa de usuario y el otro por un sistema operativo, y este último tiene acceso a instrucciones privilegiadas? ¿Son conceptualmente iguales o existen diferencias reales en los hilos?

Segundo, y el problema real de mi pregunta es: el libro que estoy usando dice que "debe existir una relación entre los hilos de usuario y los hilos del kernel", y enumerar los diferentes modelos de dicha relación. Pero el libro no explica claramentepor qué un hilo de usuariodebe siempre ser mapeado a un hilo específico del kernel. ¿Por qué es esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta