Hebras
Hebras
Descripción Modelos Multihebras Características Hebras Posix (Pthreads) Hebras en Windows XP Hebras en Linux Hebras en Java
Elo321 Hebras 2
Proceso Mono/Multi-hebra
código registros datos archivos stack código registros stack datos registros stack archivos registros stack
hebras
Monohebra
Elo321 Hebras
Multihebra
3
Beneficios
sensibilidad facilidad paracompartir recursos economía utilización de arquitecturas multiprocesadoras
Elo321 Hebras
4
Hebras de Usuario
La administración de las hebras se realizan vía bibliotecas de usuario 3 bibliotecas primarias disponibles:
POSIX Win32 Java
Elo321 Hebras
5
Hebras de Núcleo
soportadas por el núcleo ejemplos
Windows XP/2000 Solaris Linux Tru64 UNIX Mac OS X
Elo321 Hebras 6Modelos Multihebras
M:1 (muchas a una) 1:1 (una a una) M:M (muchas a muchas)
Elo321 Hebras
7
Modelo M:1 (1)
Muchas hebras de usuario mapeadas a una sola hebra de núcleo. Ejemplos
Solaris Green Threads GNU Portable Threads
Elo321 Hebras
8
Modelo M:1 (2)
hebra de usuario
k
hebra de núcleo
Elo321 Hebras
9
Modelo 1:1 (1)
Cada hebrea de usuario tiene asociada a unahebra única en el núcleo. Ejemplos
Windows NT/XP/2000 Linux Solaris 9 en adelante
Elo321 Hebras
10
Modelo 1:1 (2)
hebra de usuario
k
k
k
k
hebra de núcleo
Elo321 Hebras
11
Modelo M:M (1)
Permite muchas hebras de usuario mapeadas a muchas hebras de núcleo. Le permite al núcleo la creación de un número suficiente de hebras. Versiones de Solaris anteriores a la 9.Windows NT/2000 con módulo ThreadFiber
Elo321 Hebras 12
Modelo M:M (2)
hebra de usuario
k
k
k
hebra de núcleo
Elo321 Hebras
13
Modelo Híbrido
Similar a M:M, excepto de que permite ligar una hebra de usuario a una hebra de núcleo. Ejemplos
IRIX HP-UX Tru64 UNIX Solaris 8 y anteriores
Elo321 Hebras 14
Modelo Híbrido
hebra de usuario
k
k
k
k
hebra denúcleo
Elo321 Hebras
15
Características
Semántica de los llamados al sistema fork() y exec() Eliminación de hebras Tratamiento de Señales Agrupaciones de hebras Datos específicos de las hebras Activación del scheduler
Elo321 Hebras 16
Semántica de fork() y exec()
¿El llamado al sistema fork() duplicará sólo la hebra que ejecuta el llamado o todas las hebras?
Elo321 Hebras17
Eliminación de Hebras
el problema se produce al querer eliminar una hebra en ejecución 2 procedimientos generales:
cancelación asincrónica termina la hebra inmediatamente cancelación postergada permite que la hebra a ser eliminada, verifique periódicamente si debe terminar
Elo321 Hebras 18
Tratamiento de Señales
las señales se utilizan en Unix para notificar eventos se utiliza unmanejador de señales para atender este tipo de eventos
1. la señal es generada por un evento particular 2. la señal es enviada a un proceso 3. se atiende la señal
opciones:
enviar la señal a la hebra a la que se aplica dicha señal enviar la señal a todas las hebras de un proceso enviar la señal a un grupo de hebras en el proceso designar una hebra específica para atender todas las señales querecibe el proceso
Elo321 Hebras
19
Agrupaciones de Hebras
Crea un grupo de hebras a la espera por requerimientos. Ventajas:
rendimiento levemente superior al atender requerimientos con hebras existentes en vez de tener que crearlas permite acotar la cantidad de hebras de una aplicación (o varias) al número de hebras del grupo
Elo321 Hebras 20
Datos Específicos de las Hebraspermite a cada hebra mantener datos privados útil cuando no se tiene el control de la creación de procesos (ej. agrupación de hebras)
Elo321 Hebras
21
Activación del Scheduler
tanto el modelo M:M como el híbrido requieren de comunicación para mantener un número apropiado de hebras en el núcleo la activación del scheduler permite upcalls – un mecanismo de comunicación del núcleo con la...
Regístrate para leer el documento completo.