Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Hilos de procesamiento (página 2)




Enviado por Pablo Turmero



Partes: 1, 2

Monografias.com

Ventajas de los hilos a nivel usuario
Los hilos podían implementarse en las aplicaciones que se ejecutaban en sistemas operativos que no son capaces de planificar hilos
Ejemplo: Primeras implementaciones de UNIX

Monografias.com

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 núcleo del procesador en un procesador que tiene más de un núcleo
No puede distribuir los hilos a nivel el usuario en los dos núcleos

Monografias.com

Hilos a nivel kérnel
Soportados por el kérnel
Ejemplos
Windows 95/98/NT
Solaris
Linux
Mac OS

Monografias.com

Hilos a nivel kernel (con un CPU con un solo núcleo)
Nivel kérnel (sistema operativo)
Nivel usuario
Core
CPU
Hardware
Planificador del SO

Monografias.com

Hilos a nivel kernel (con un CPU con doble núcleo)
Nivel kérnel (sistema operativo)
Nivel usuario
Core
Core
CPU
Hardware
Planificador del SO

Monografias.com

Ventajas de los hilos a nivel kérnel
El proceso de usuario no se tiene que encargar de la planificación de los hilos

Si tenemos un procesador con más de un núcelo, el Sistema operativo puede planificar los hilos en diferentes núcleos

Monografias.com

Modelos multihilos
Muchos a uno
Uno a uno
Muchos a muchos

Monografias.com

Muchos a uno
Muchos hilos a nivel usuario mapeados a un hilo a nivel kérnel.

Usado en sistemas que no soportan hilos a nivel kérnel.

Monografias.com

Modelo muchos a uno
(Gp:) k

Monografias.com

Ejecución
Listo
Listo
Relaciones entre estados de ULTs y estados de procesos
Ejecución
Bloqueado
Bloqueado
Listo
Ejecución
Bloqueado
Hilo 1
Hilo 2
Proceso B
Kernel
Usuario

Monografias.com

Uno a uno
Cada hilo a nivel usuario corresponde a un hilo del kérnel.

Ejemplos:
– Windows 95/98/NT
– OS/2

Monografias.com

Modelo uno a uno
(Gp:) k
(Gp:) k
(Gp:) k
(Gp:) k
(Gp:) Hilo a nivel usuario
(Gp:) Hilo a nivel kérnel

Monografias.com

Modelo muchos a muchos
(Gp:) k
(Gp:) k
(Gp:) k
(Gp:) Hilo a nivel usuario
(Gp:) Hilo a nivel kérnel

Monografias.com

Soporte de hilos en Solaris 2
Solaris 2 es una versión de UNIX con soporte para hilos a nivel kernel y a nivel usuario, procesamiento simétrico y planificación en tiempo real.

Monografias.com

Soporte de hilos en Solaris 2
LWP – Nivel intermedio entre los hilos a nivel kernel y los hilos a nivel usuario.

Monografias.com

Hilos en Solaris 2. Recursos necesarios para los tipos de hilos
Hilos del kernel
Estructura de datos pequeña y un stack
El intercambio de hilos no requiere cambiar la información del acceso a memoria
Cambios de hilos relativamente rápidos

Monografias.com

Hilos en Solaris 2. Recursos necesarios para los tipos de hilos
LWP
PCB con datos de los registros
Información sobre la memoria
El intercambio entre LWP es relativamente lento

Monografias.com

Hilos en Solaris 2. Recursos necesarios para los tipos de hilos
Hilos a nivel usuario
Solo requiere un stack y un contador de programa
No involucrar al kernel significa un intercambio rápido
El kernel solo ve los LWP que soporta los hilos a nivel usuario

Monografias.com

(Gp:) Usuario
(Gp:) Núcleo
(Gp:) Hardware
(Gp:) Biblioteca
de hilos
(Gp:) Hilo a nivel de usuario
(Gp:) Hilo del núcleo
(Gp:) Proceso ligero
(Gp:) Procesador
(Gp:) L
(Gp:) L
(Gp:) L
(Gp:) L
(Gp:) L
(Gp:) L
(Gp:) L
(Gp:) L
(Gp:) L
(Gp:) L
(Gp:) P
(Gp:) P
(Gp:) P
(Gp:) P
(Gp:) P
(Gp:) P
(Gp:) Proceso 1
(Gp:) Proceso 2
(Gp:) Proceso 3
(Gp:) Proceso 4
(Gp:) Proceso 5

Ejemplo de la arquitectura multihilo de Solaris

Monografias.com

Gestión de hilos básica
Un hilo tiene :
Un identificador (ID)
Una pila
Una prioridad de ejecución
Una dirección de inicio de ejecución.

Monografias.com

Gestión de hilos básica(POSIX)
Se dice que un hilo es dinámico si se puede crear en cualquier instante durante la ejecución.
En POSIX :
los hilos se crean dinámicamente con la función pthread_create.
pthread_exit termina el hilo que la invoca.

Monografias.com

Gestión de hilos básica (POSIX), ejemplo:
Programa que crea un hilo donde muestra el mensaje "Hola Mundo"

Para compilar el programa :
$ cc -D_REENTRANT thread2.c -o thread2 -lpthread

Monografias.com

int main()
{

pthread_create(a_thread,funcion_hilo);

pthread_join(a_thread);

}
funcion_hilo()
{
.
}
Crea un hilo nuevo
Espera a que termine el hilo creado
Hilo principal
Hilo creado con la llamada pthread_create

Monografias.com

Gestión de hilos básica(POSIX)
Pthread_join()
Hilo que ejecuta pthread_join, espera a que termine otro hilo
El hilo principal debe esperar a que terminen todos los hilos creados
Si el hilo principal no espera a que terminen los hilos creados, al terminar termina el proceso con todos los hilos.

Monografias.com

Hilos en memoria
Código
(compartido)
Datos
(compartidos)
Int cont=0 (var. Global)
Stack (de cada hilo)
Int i
(var local)
Stack (de cada hilo)
Int i
(var local)

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter