Hilos
Concepto
Beneficios
Hilos a nivel kérnel y a nivel usuario
Modelos multihilos
Hilos de Solaris 2
Hilos de Java
Hilos
Un hilo (o proceso ligero) es una unidad básica de utilización del CPU; consiste de:
Contador de programa
Conjunto de registros
Espacio de stack
Hilos
Un hilo comparte con sus hilos pares:
Sección de código
Sección de datos
Recursos del sistema operativo
En conjunto se les conoce como tarea
Un proceso tradicional o pesado, es igual a una tarea con un hilo.
(Gp:) un proceso
un hilo
(Gp:) varios procesos
un hilo por proceso
(Gp:) varios procesos
varios hilos por proceso
(Gp:) un proceso
varios hilos
Hilos y procesos
(Gp:) Código
(Gp:) Datos
(Gp:) Archivos
(Gp:) Código
(Gp:) Datos
(Gp:) Archivos
Hilo
Hilos
Mono-hilo
Multi-hilo
Procesos con un solo hilo y con múltiples hilos
Bloque de
control
del hilo
Stack
del
usuario
Stack
del
usuario
Stack
del
kernel
Stack
del
Kernel
Espacio de
direcciones
del usuario
Espacio de
direcciones
del usuario
Bloque de
control del
proceso
Bloque
de control
del proceso
Hilo
Modelo de proceso
de un solo hilo
Modelo de proceso
multihilos
Bloque de
control
del hilo
Stack
del
usuario
Stack
del
kernel
Hilo
Bloque de
control
del hilo
Stack
del
usuario
Stack
del
kernel
Hilo
Modelos de procesos de un solo hilo y de muchos hilos
Multihilo
Sistema operativo que mantiene varios hilos de ejecución dentro de un mismo proceso.
MS-DOS soporta un solo hilo.
UNIX soporta múltiples procesos de usuarios, pero sólo un hilo por proceso.
Windows 2000, Solaris, Linux, Mac OS, OS/2 soportan múltiples hilos.
Hilos
En una tarea donde hay múltiples hilos, mientras un hilo servidor está bloqueado y esperando, otro hilo en la misma tarea puede ejecutarse.
Cooperación de múltiples hilos en la misma tarea aumenta la tasa de trabajos por unidad tiempo y mejora el rendimiento.
Aplicaciones que requieren compartir un buffer común (productor-consumidor) sacan provecho de la utilización de hilos.
Hilos
Los hilos proveen un mecanismo que permiten a procesos secuenciales hacer llamadas bloqueantes mientras otros en paralelo ejecutan otras operaciones.
Beneficios
Compartición de recursos
Economía
Utilización de arquitecturas de múltiples procesadores
Hilos a nivel usuario
El manejo de los hilos lo hace una librería de hilos a nivel usuario
Ejemplos
– Hilos POSIX
– Mach C-threads
– Hilos de Solaris
Hilos a nivel usuario (un CPU con dos núcleos)
Nivel kérnel (sistema operativo)
Nivel usuario
Proceso de usuario gestiona y planifica los múltiples hilos
Core
Core
CPU
Hardware
Planificador del SO
Página siguiente |