Sistemas operativos threads

Preview:

DESCRIPTION

Sistemas operativos

Citation preview

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

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

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

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.

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

• 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

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.

• 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.

• 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.

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

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

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

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.

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)

• Implementaciones Hibridas.-

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

Recommended