2. Tipo de
implementación de
hilos
Características Ventaja Desventajas
En el espacio del
usuario
Cuando los hilos se
administran en espacio de
usuario, cada proceso
necesita su propia tabla de
hilos privada para llevar la
cuenta de los hilos en ese
proceso.
Los hilos se ejecutan
encima de un sistema en
tiempo de ejecución.
Administra procesos
ordinarios con un solo hilo.
Es que un paquete de
hilos de nivel usuario
puede implementarse en
un sistema operativo que
no acepte hilos.
Permiten que cada
proceso tenga su propio
algoritmo de planificación
personalizado.
Si un hilo empieza a
ejecutarse, ningún otro hilo
en ese proceso se ejecutará
a menos que el primero
renuncie de manera
voluntaria a la CPU.}
Los hilos precisamente en
aplicaciones se bloquean
con frecuencia.
En el kernel no hay tabla de hilos en
cada proceso.
Tiene una tabla de hilos
que lleva la cuenta de
todos los hilos en el
sistema.
Contiene los registros, el
estado y demás
información de cada hilo.
Resuelven sólo algunos
problemas.
Puedan registrar su
interés en ciertas
señales, de manera que
cuando llegue una señal
se envíe al hilo que la
está esperando.
El costo de una llamada al
sistema es considerable,
por lo que si las
operaciones de hilos son
comunes, se incurrirá en
una mayor sobrecarga.
Hibrídas Se puede determinar
cuántos hilos de kernel va
a utilizar y cuántos hilos de
nivel usuario va a
multiplexar en cada uno.
Este modelo proporciona
lo último en flexibilidad
Algunos de estos hilos
pueden tener varios hilos
de nivel usuario
multiplexados encima de
ellos; los hilos de nivel
de usuario se crean,
destruyen y planifican de
igual forma que los hilos
de nivel usuario en un
proceso que se ejecuta
en un sistema operativo
sin capacidad de
multihilamiento.
Cada hilo de nivel kernel
tiene algún conjunto de hilos
de nivel usuario que toman
turnos para utilizarlo.
3. Emergentes Se utilizan con frecuencia
en los sistemas
distribuidos.
Hace que el sistema cree
un nuevo hilo para
manejar el mensaje
Es que, como son
nuevos, no tienen
historial (registros, pila,
etcétera) que sea
necesario restaurar.
Cada uno empieza
desde cero y es idéntico
a los demás. Esto hace
que sea posible crear
dicho hilo con rapidez.
Hacer que el hilo
emergente se ejecute en
espacio de kernel es por
lo general más rápido y
sencillo que colocarlo en
espacio de usuario.
Es necesaria cierta
planeación anticipada
cuando se utilizan hilos
emergentes.
Un hilo de kernel con
errores puede hacer más
daño que un hilo de usuario
con errores.