Está en la página 1de 29

UNIVERSIDAD TECNICA ESTATAL DE QUEVEDO

ASIGNATURA: SISTEMAS OPERATIVOS


TEMAS: HILOS MULTIHILOS PLANIFICACION DE HILOS
INTEGRANTES:
FLORES MONTOYA PABLO DANILO .

Hilos

Un hilo (o proceso ligero) es una unidad bsica de utilizacin del CPU; consiste de:

Contador de programa Conjunto de registros

Espacio de stack

Un hilo comparte con sus hilos pares:

Seccin de cdigo
Seccin 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.

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

un proceso varios hilos

varios procesos un hilo por proceso

varios procesos varios hilos por proceso

Procesos con un solo hilo y con mltiples hilos

Cdigo

Datos

Archivos

Cdigo

Datos

Archivos

Hilo

Hilos

Mono-hilo

Multi-hilo

Modelos de procesos de un solo hilo y de muchos hilos


Modelo de proceso multihilos
Hilo
Bloque de control del proceso Stack del usuario Bloque de control del hilo

Modelo de proceso de un solo hilo

Hilo
Bloque de control del hilo

Hilo
Bloque de control del hilo

Espacio de direcciones del usuario

Stack del Kernel

Bloque de control del proceso

Stack del usuario

Stack del usuario

Stack del usuario

Espacio de direcciones del usuario

Stack del kernel

Stack del kernel

Stack del kernel

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.

Beneficios de los hilos

Comparticin de recursos Economa Utilizacin de arquitecturas de mltiples procesadores

Tipos de hilos

Hilos a nivel de usuarios Hilos a nivel de krnel

Hilos a nivel usuario


El manejo de los hilos lo hace una librera de hilos a nivel usuario La librera deber proveer soporte para crear, planificar y administrar los hilos sin soporte del sistema operativo. El sistema operativo solo reconoce un hilo de ejecucin en el proceso.

Ejemplos - Hilos POSIX - Mach C-threads

- Hilos de Solaris

Hilos a nivel usuario (un CPU con dos ncleos)

Nivel usuario Nivel krnel (sistema operativo)

Proceso de usuario gestiona y planifica los mltiples hilos

Planificador del SO Hardware CPU Core Core

Ventajas de los hilos a nivel usuario


Los hilos podan implementarse en las aplicaciones que se ejecutaban en sistemas operativos que no son capaces de planificar hilos

Ejemplo: Primeras implementaciones de UNIX

Desventajas de los hilos a nivel usuario


El planificador del sistema operativo solo ve un hilo por proceso

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

Hilos a nivel krnel


Soportados por el krnel El sistema es quien provee la creacin, planificacin y administracin de los hilos.

Ejemplos

Windows 95/98/NT Solaris Linux Mac OS

Hilos a nivel kernel (con un CPU con un solo ncleo)

Nivel usuario Nivel krnel (sistema operativo)

Planificador del SO

Hardware
CPU Core

Hilos a nivel kernel (con un CPU con doble ncleo)


Nivel usuario Nivel krnel (sistema operativo)

Planificador del SO

Hardware CPU
Core Core

Ventajas de los hilos a nivel krnel


El proceso de usuario no se tiene que encargar de la planificacin de los hilos Si tenemos un procesador con ms de un nclo, el Sistema operativo puede planificar los hilos en diferentes ncleos

Modelos multihilos

Muchos a uno Uno a uno Muchos a muchos

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.

Modelo muchos a uno

Relaciones entre estados de ULTs y estados de procesos


Hilo 1
Listo
Ejecucin

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

Modelo uno a uno

Hilo a nivel usuario

Hilo a nivel krnel

Modelo muchos a muchos

Hilo a nivel usuario

Hilo a nivel krnel k k

Gestin de hilos bsica

Un hilo tiene :

Un identificador (ID) Una pila Una prioridad de ejecucin Una direccin de inicio de ejecucin.

También podría gustarte