Multithreadigs

Páginas: 9 (2115 palabras) Publicado: 14 de julio de 2011
UNIVERSIDAD NACIONAL DEL CENTRO DE LA PROVINCIA DE BUENOS AIRES FACULTAD DE CIENCIAS EXACTAS

________________________________________
FUNDAMENTOS BÁSICOS DE THREADS
por José Macchi & Martín Mezzanotte
________________________________________
ANTES DE COMENZAR…
En este tutorial nos proponemos brindar una ayuda al alumno para familiarizarse con el concepto de thread, su significado,aspectos teóricos y características.
Además examinaremos aspectos de multiprocesamiento (y multithreading), estudiaremos someramente algunos conceptos básicos de teoría de threads y observaremos cómo los threads pueden ser efectivamente usados para crear programas más eficientes. A tal efecto, nos centraremos en los aspectos de funcionamiento de los programas de múltiples threads, así como enlas distintas instancias de procesamiento y administración de los mismos.
________________________________________
¿QUÉ ES UN THREAD?
Un thread o hilo es un “semi-proceso”, que tiene su propia pila, y que ejecuta una porción de código dada. A diferencia de un proceso real, un thread normalmente comparte su memoria con otros threads (en la cual, tal como sucede con los procesos, cada threadtendrá asignado su espacio de memoria).
Un grupo de threads es un conjunto de “hilos de ejecución” que están corriendo todos dentro del mismo proceso. Dado que comparten todos la misma porción de memoria, pueden acceder a las mismas variables globales, la misma memoria de heap, los mismos descriptores de archivos, etc. Todos corren en paralelo (por ejemplo: usando porciones del tiempo asignadoal proceso en general o, si están dentro de un sistema con multiprocesadores, pueden eventualmente correr de forma paralela realmente).
La ventaja de usar un grupo de threads en lugar de un programa normal en serie es que muchas operaciones pueden ser llevadas a cabo de forma paralela y, de esta forma, los eventos asociados a cada actividad pueden ser manejados inmediatamente tan pronto comollegan (por ejemplo: si tenemos un thread manejando la interface de usuario y otro manejando las consultas a una base de datos, podremos ejecutar consultas complejas realizadas por el usuario y aun así responder a la entrada del mismo mientras la consulta está siendo ejecutada).
La ventaja de usar un grupo de threads en vez de un grupo de procesos es que el cambio de contexto entre threads esrealizado mucho más rápidamente que el cambio de contexto entre procesos (un cambio de contexto significa que el sistema operativo cambia la ejecución de un thread o proceso a la ejecución de otro). Por lo tanto, las comunicaciones entre dos threads son usualmente más rápidas y sencillas de implementar que las comunicaciones entre dos procesos.
Por otro lado, debido a que los threads dentro deun grupo comparten el mismo espacio de memoria, si uno de ellos corrompe el espacio de su memoria, los otros threads también sufrirán las consecuencias. Con un proceso, el sistema operativo normalmente protege a un proceso de otros y si un proceso corrompe su espacio de memoria los demás no se verán afectados.
________________________________________
BENEFICIOS DE THREADS VS PROCESOS
Si selos implementa correctamente entonces los threads tienen algunas ventajas por sobre los (multi) procesos, es así que tendremos:
• Menos cantidad de tiempo para crear un nuevo thread respecto de un proceso, porque el nuevo thread usa la dirección de espacio del proceso actual.
• Menos tiempo en la terminación de un thread respecto de un proceso.
• Menos tiempo en el cambio de ejecuciónentre dos threads dentro del mismo proceso, debido a que ambos están usando el mismo espacio de direcciones del proceso.
• Menor cantidad de overhead en las comunicaciones; dado que la comunicación entre los threads de un proceso es simple y al compartir recursos comunes, particularmente el espacio de direcciones, la información creada por un thread estará disponible para todos los demás....
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS