Un subproceso es un proceso ligero que es similar a un proceso en el que cada proceso puede tener uno o más subprocesos. Cada subproceso contiene una pila y un bloque de control de subprocesos. Hay cuatro modelos básicos de hilos:
1. Modelo de subproceso único de nivel de usuario:
- Cada proceso contiene un solo hilo.
- El proceso único es en sí mismo un hilo único.
- La tabla de procesos contiene una entrada para cada proceso manteniendo su PCB.
2. Modelo de subprocesos múltiples de nivel de usuario:
- Cada proceso contiene varios subprocesos.
- Todos los subprocesos del proceso están programados por una biblioteca de subprocesos a nivel de usuario.
- El cambio de subprocesos se puede hacer más rápido que el cambio de procesos.
- El cambio de subprocesos es independiente del sistema operativo y se puede realizar dentro de un proceso.
- El bloqueo de un hilo hace que se bloquee todo el proceso.
- La tabla de subprocesos mantiene el bloque de control de subprocesos de cada subproceso de un proceso.
- La programación de subprocesos ocurre dentro de un proceso y Kernel no lo conoce.
3. Modelo de subproceso único a nivel de kernel:
- Cada proceso contiene un solo hilo.
- El subproceso utilizado aquí es un subproceso de nivel de kernel.
- La tabla de procesos funciona como tabla de hilos.
4. Modelo de subprocesos múltiples a nivel de kernel:
- La programación de subprocesos se realiza a nivel de kernel.
- La programación de grano fino se realiza por subprocesos.
- Si un hilo se bloquea, se puede programar otro hilo sin bloquear todo el proceso.
- La programación de subprocesos en el proceso Kernel es más lenta en comparación con la programación de subprocesos a nivel de usuario.
- El cambio de hilo implica cambiar.