¿Por qué los hilos del sistema operativo se consideran caros?

Hay muchas soluciones orientadas a implementar hilos de "espacio de usuario". Ya sea golang.org goroutines, hilos verdes de Python, asíncrono de C #, procesos de erlang, etc. La idea es permitir la programación concurrente incluso con un número único o limitado de hilos.

Lo que no entiendo es, ¿por qué los hilos del sistema operativo son tan caros? Tal como lo veo, de cualquier manera debe guardar la pila de la tarea (subproceso del sistema operativo o subproceso de usuario), que es unas pocas decenas de kilobytes, y necesita un programador para moverse entre dos tareas.

El sistema operativo proporciona ambas funciones de forma gratuita. ¿Por qué los hilos del sistema operativo deberían ser más caros que los hilos "verdes"? ¿Cuál es la razón de la supuesta degradación del rendimiento causada por tener un subproceso dedicado del sistema operativo para cada "tarea"?

Respuestas a la pregunta(12)

Su respuesta a la pregunta