17
Threads (Hilos) En los SO tradicionales cada proceso tiene su propio espacio de direcciones y un único flujo (Hilo) de control. Es una característica que permite a una aplicación realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación

Sistemas operativos threads

Embed Size (px)

DESCRIPTION

Sistemas operativos

Citation preview

Page 1: Sistemas operativos   threads

Threads (Hilos)En los SO tradicionales cada proceso tiene su propio espacio de direcciones y un único flujo (Hilo) de control.

Es una característica que permite a una aplicación realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación

Page 2: Sistemas operativos   threads

Un thread es básicamente una tarea que puede ser ejecutada en paralelo con otra tarea.

Page 3: Sistemas operativos   threads

Modelos de Threads• El modelo de procesos se basa en 2

conceptos independientes:- El agrupamiento de los recursos.- Ejecución secuencial de un programa.

En un proceso se juntan recursos relacionados.Un proceso tiene espacios de direcciones(Códigos y datos del programa, ficheros abiertos, procesos hijos) que poniendo todos estos recursos juntos es mas fácil gestionarlos

Page 4: Sistemas operativos   threads

El otro concepto que incluye un proceso es el hilo de ejecución o también llamado Threads

Es la unidad básica de utilización del CPU y está constituida por:

–PC (Contador de programa)

–Conjunto de registros

–Espacio para pila

Los threads comparten con otros threads:

- Código

– Datos

–Archivos abiertos, señales.

Page 5: Sistemas operativos   threads

Multihilo (Multithreaded)Es cuando existen múltiples Threads en un mismo proceso.

Page 6: Sistemas operativos   threads
Page 7: Sistemas operativos   threads

• La primera columna lista algunos de los elementos compartidos por todos los Threads en un proceso.

• La segunda columna lista algunos elementos privados de cada Threads

Page 8: Sistemas operativos   threads

Un thread puede estar en cualquiera de los estados: Ejecución Bloqueado Preparado

Un thread en ejecución tiene en ese momento la CPU y esta activo.Un thread bloqueado espera que algún proceso lo desbloquee Un thread preparado esta planificado para ejecutarse y lo hace apenas llegue su turno.

Page 9: Sistemas operativos   threads

• Es importante que nos demos cuenta que cada thread contiene su propia pila.

• Por ej: Tenemos 4 procesos que están siendo ejecutados por el SO cada uno con un determinada ejecución diferente a la vez es hay donde cada pila trabaja en cada Thread correspondiente.

Page 10: Sistemas operativos   threads

• En un sistema multihilo se inicia con un único thread es hay cuando hacemos uso del procedimiento de biblioteca

• Thread_create.-crea nuevos threads a partir del thread inicial

• Thread_exit.-cierra el thread una vez terminado su trabajo.

• Thread_wait.- un thread puede esperar a que termine la ejecución de otro.

Page 11: Sistemas operativos   threads

Utilización de los ThreadsLa razón principal para tener threads es que son numerosas las aplicaciones en las hay varias actividades que están en marcha simultáneamente

Page 12: Sistemas operativos   threads

Muchos procesadores de texto ofrecen la posibilidad de saltar automáticamente todo el fichero en el disco cada pocos minutos para proteger al usuario de una perdida de su trabajo diario a causa de un programa que se bloquea, caída del sistema, fallo de suministro eléctrico.

Es hay donde el 3er thread se encarga de los backups(copias de seguridad, respaldos) sin interferir en la ejecución de los otros dos threads

El modelo de programación es mas simple

Trabaja la RAM

Page 13: Sistemas operativos   threads

Lee las peticiones de

servicio a través de la red

Una vez listo el thread obrero,

Comprueba si la petición puede

realizarse a través de la cache de paginas

web

Page 14: Sistemas operativos   threads

Este modelo permite escribir el servidor como una colección de threads secuenciales.

o El programa de THREAD DESPACHADOR es un bucle infinito de petición de servicio a tratar.

o El programa THREAD OBRERO también es un bucle infinito que acepta la petición del despachador para verificar si la pagina web solicitada existe en la cache de paginas web, si lo está esta se presenta al cliente usuario.

Page 15: Sistemas operativos   threads

Implementación de los threads

Existen 2 formas fundamentales para implementar un paquete de Threads:

• En el espacio del usuario

• En el núcleo (kernel)

Page 16: Sistemas operativos   threads

• Implementaciones Hibridas.-

Page 17: Sistemas operativos   threads

Threads emergentes• Son muy útiles en los sistemas distribuidos.• Las peticiones de servicios son las utilizadas.

• Es un thread que se crea para tratar mensajes entrantes en el proceso