Está en la página 1de 8

Hilos

Mdulo 4
Departamento de Informtica
Facultad de Ingeniera
Universidad Nacional de la Patagonia San Juan Bosco

Hilos
 Revisin
 Modelos Multihilados
 Libreras de Hilos
 Aspectos sobre Hilos
 Ejemplos de Sistemas Operativos
 Hilos en Windows XP
 Hilos en Linux

JRA 2010

Sistemas Operativos Hilos

Objetivos
 Introducir la nocin de hilo una unidad fundamental

de la utilizacin CPU que forma la base de los sistemas


de computacin multihilados
 Discutir las APIs para libreras de hilos Pthreads, Win32

y Java
 Examinar aspectos relacionados a las programacin

multihilos

Sistemas Operativos Hilos

JRA 2010

Hilos
 Un hilo thread- (o proceso de peso liviano) es una unidad

bsica de utilizacin de CPU, consiste de:


 contador de programa
 conjunto de registros
 espacio de stack
 Un hilo comparte con sus hilos compaeros (colectivamente
conocidos como tarea o task) su:



seccion de cdigo
seccin de datos

recursos del SO.


 Un proceso tradicional o peso pesado es igual a una tarea
con un solo hilo.


JRA 2010

Sistemas Operativos Hilos

Hilos
 En una tarea con mltiple hilos, mientras un hilo servidor

est bloqueado y esperando, un segundo hilo de la misma


tarea puede estar corriendo.
 Cooperacin de mltiple hilos en una misma tarea confiere

alto procesamiento total y mejora el rendimiento.




Aplicaciones que requieren compartir un buffer comn


(p.e., productor-consumidor) se benefician con la
utilizacin de hilos.

 Los hilos proveen un mecanismo que permite a procesos

sequenciales hacer llamadas al sistema bloqueantes


mientras que tambin logra paralelismo.

Sistemas Operativos Hilos

JRA 2010

Procesos Mono y Multihilos

hilo

hilo

Proceso mono hilado

JRA 2010

Proceso multihilado

Sistemas Operativos Hilos

Beneficios
Capacidad de Respuesta
Compartir Recursos
Dado que los hilos dentro de un mismo proceso comparten
memoria y archivos, pueden comunicarse unos con otros sin
invocar al kernel
Economa
Toma menos tiempo crear un nuevo hilo que un proceso
Menos tiempo terminar un hilo que un proceso
Menos tiempo en conmutar entre dos hilos dentro del mismo
proceso
Utilizacin de Arquitecturas Multiprocesador
Escalabilidad

Sistemas Operativos Hilos

JRA 2010

Programacin Multicore
 Los sistemas multicore ponen presin sobre los

programadores, estos desafios incluyen:

JRA 2010

Dividir actividades

Balance

Particin de datos

Dependencia de los datos

Verificacin y depuracin

Sistemas Operativos Hilos

Arquitectura de Servidor Multihilado

(2) crea un nuevo


hilo para servir el
requerimiento

requerimiento

cliente

servidor

hilo

(3) Reinicia la escucha


por requerimiento
adicional de los clientes

JRA 2010

Sistemas Operativos Hilos

Ejecucin Concurrente sobre un Sistema monocore

tiemp
o

JRA 2010

Sistemas Operativos Hilos

Ejecucin Paralela sobre un Sistema Multicore

tiempo

Sistemas Operativos Hilos

JRA 2010

Hilos a Nivel de Usuario


 Administracin de hilos realizada por libreras a

nivel de usuario
 Tres libreras primarias:

JRA 2010

POSIX Pthreads

Win32 threads

Java threads

Sistemas Operativos Hilos

Hilos a Nivel de Kernel


 Suportados por el Kernel
 Ejemplos
 Windows

XP/2000

 Solaris
 Linux

(?)

 Tru64

UNIX

 Mac

OS X

Sistemas Operativos Hilos

JRA 2010

Libreras de Hilos
 Las libreras de hilos proveen a los

programadores con APIs para crear y


administrar hilos
 Dos formas primarias de implementarlas
 Libreras

enteramente en espacio de

usuario
 Librera

a nivel de Kernel soportada por el

SO

JRA 2010

Sistemas Operativos Hilos

Pthreads
 Pueden ser provistas sea a nivel de usuario

como a nivel de kernel


 Es un standard POSIX (IEEE 1003.1c) API

para creacin y sincronizacin de hilos


 Las API especifican el comportamiento de la

librera de hilos
 Comn en SOs UNIX (Solaris, Linux, Mac

OS X)

JRA 2010

Sistemas Operativos Hilos

Fin
Mdulo 4
Departamento de Informtica
Facultad de Ingeniera
Universidad Nacional de la Patagonia San Juan Bosco

También podría gustarte