Puesto que está comparando hilos de kernel con hilos de usuario [land], supongo que quiere decir algo como lo siguiente.
La forma normal de implementar subprocesos hoy en día es hacerlo en el kernel, por lo que se pueden considerar subprocesos "normales". Sin embargo, también es posible hacerlo en el territorio del usuario, utilizando señales como SIGALRM, cuyo controlador guardará el estado del proceso actual (principalmente registros) y los cambiará a otro previamente guardado. Varios sistemas operativos lo usaron como una forma de implementar subprocesos antes de que obtuvieran el soporte adecuado para el hilo del kernel. Pueden ser más rápidos, ya que no tienes que entrar en el modo kernel, pero en la práctica se han desvanecido.
También hay subprocesos cooperativos de usuario, donde un subproceso se ejecuta hasta que llama a una función especial (normalmente llamada rendimiento), que luego cambia a otro subproceso de forma similar a como lo hace con SIGALRM anterior. La ventaja aquí es que el programa está en control total, lo que puede ser útil cuando tienes problemas de tiempo (un juego, por ejemplo). Tampoco tiene que preocuparse mucho por la seguridad de los hilos. La gran desventaja es que solo se puede ejecutar un hilo a la vez, y por lo tanto, este método tampoco es común ahora que los procesadores tienen múltiples núcleos.
Los hilos del kernel se implementan en el kernel. ¿Tal vez quiso decir cómo usarlos? La forma más común es llamar al pthread_create
.
Has leído esto, supongo? http://en.wikipedia.org/wiki/Thread_(computing) Eso debería al menos responder algunas de sus preguntas. – Bart
También hay [esta respuesta anterior] (http://stackoverflow.com/a/8809791/777186) en un contexto similar. – jogojapan