Hilos
Un hilo (o proceso ligero) es una unidad bsica de utilizacin del CPU; consiste de:
Espacio de stack
Seccin de cdigo
Seccin de datos Recursos del sistema operativo En conjunto se les conoce como tarea
Un hilo tiene :
Un identificador (ID) Una pila Una prioridad de ejecucin Una direccin de inicio de ejecucin.
Hilos y procesos
un proceso un hilo
Cdigo
Datos
Archivos
Cdigo
Datos
Archivos
Hilo
Hilos
Mono-hilo
Multi-hilo
Hilo
Bloque de control del hilo
Hilo
Bloque de control del hilo
Multihilos
Sistema operativo que mantiene varios hilos de ejecucin dentro de un mismo proceso. MS-DOS soporta un solo hilo. UNIX soporta mltiples procesos de usuarios, pero slo un hilo por proceso. Windows 2000, Solaris, Linux, Mac OS, OS/2 soportan mltiples hilos.
En una tarea donde hay mltiples hilos, mientras un hilo servidor est bloqueado y esperando, otro hilo en la misma tarea puede ejecutarse.
Cooperacin de mltiples hilos en la misma tarea aumenta la tasa de trabajos por unidad tiempo y mejora el rendimiento.
Aplicaciones que requieren compartir un buffer comn (productor-consumidor) sacan provecho de la utilizacin de hilos.
Los hilos proveen un mecanismo que permiten a procesos secuenciales hacer llamadas bloqueantes mientras otros en paralelo ejecutan otras operaciones.
Tipos de hilos
- Hilos de Solaris
No ve los hilos a nivel usuario Usa un solo ncleo del procesador en un procesador que tiene ms de un ncleo No puede distribuir los hilos a nivel el usuario en los dos ncleos
Ejemplos
Planificador del SO
Hardware
CPU Core
Planificador del SO
Hardware CPU
Core Core
Modelos multihilos
Muchos a uno
Muchos hilos a nivel usuario mapeados a un hilo a nivel krnel. Usado en sistemas que no soportan hilos a nivel krnel.
Hilo 2
Listo
Ejecucin
Bloqueado Bloqueado
Usuario
Kernel
Listo
Ejecucin
Bloqueado
Proceso B
Uno a uno
Cada hilo a nivel usuario corresponde a un hilo del krnel. Ejemplos: - Windows 95/98/NT - OS/2
Un hilo tiene :
Un identificador (ID) Una pila Una prioridad de ejecucin Una direccin de inicio de ejecucin.