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

Hebras – Procesos (página 2)




Enviado por Pablo Turmero



Partes: 1, 2

Monografias.com

Quién crea/maneja hebras?
Opción 2: Creadas y manejadas en nivel usuario, dentro de un proceso
Una biblioteca linkeada con el programa que usa hebras
Operaciones de creación, destrucción, etc sobre hebras son llamadas a procedimientos (no llamadas a sistema)
Descritas como muchas to una
Muchas hebras mapeadas a un proceso/hebra del kernel
Biblioteca posee planificador de hebras creadas por proceso
proceso
Hebra kernel

Monografias.com

Ilustración hebras de kernel
Espacio Direccionamiento
hebra
Mach, NT,
Linux, .
kernel
Operaciones sobre hebras mediante llamadas a sistema al kernel
CPU

Monografias.com

Hebras nivel usuario
Espacio de direccionamiento
hebra
Mach, NT,
Linux, .
kernel
Kernel crea maneja hebras de kernel
CPU
(Gp:) Biblioteca hebras
nivel usuario
(Gp:) Operaciones sobre hebras

Hebras de kernel

Monografias.com

Manejando mejor hebras nivel usuario
Espacio de direccionamiento
hebra
Mach, NT,
Linux, .
kernel
(Gp:) Biblioteca hebras
Nivel usuario
(Gp:) Operaciones sobre hebras

Manejo hebras kernel
CPU
Hebras kernel

Monografias.com

Implementación de hebras nivel usuario
Kernel ve a proceso como cualquier otro
Hebras de nivel usuario invisibles al SO
Pero proceso incluye funcionalidad proporcionada por biblioteca de hebras la cual tiene su propio planificador
Planificador de biblioteca decide que hebra del proceso se ejecuta a determinado tiempo
SO provee de llamadas a sistema no bloqueantes, de manera que si una hebra de usuario hace E/S biblioteca de hebras sabe que puede hacer cambio de contexto en hebras de usuario

Monografias.com

Hebras de nivel usuario
POSIX Threads API
En biblioteca libpthreads.so en linux
t = pthread_create(attributes, start_procedure)
Crea hebra de control, que comienza ejecución en procedimiento dado
Puede especificar creación de hebras nivel kernel en attributes
pthread_cond_wait(condition_variable)
Hebra se bloquea hasta que condición se cumple
pthread_signal(condition_variable)
Señaliza a hebra que espera por condicion
pthread_exit()
Termina la hebra
pthread_join(t)
Espera por hebra t hasta que termine

Monografias.com

Resumen
Hebras de kernel son más eficientes que procesos
Hebras de nivel usuario son más rápidas que las de kernel
Operaciones no pasan a través de SO
Si hebras de nivel usuario residen en un proceso representado por sólo una hebra de kernel
No puede proporcionar paralelismo si solo una hebra de kernel asociada a proceso
Si una hebra de proceso de usuario se bloquea en E/S entonces todo el proceso se bloquea (asumiendo que solo una hebra de kernel está asociada a proceso)
Normalmente biblioteca maneja llamadas a sistema no bloqueantes por hebras de usuario de manera que pueda utilizar hebra de kernel para otra hebra de usuario

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