You are on page 1of 2

VENTAJAS DE LOS HILOS La principal ventaja de los hilos es el rendimiento. Normalmente el rendimiento es una cantidad percibida y no dada.

Unas aplicaciones se beneficiarn de los hilos mientras que otras no. Como se suele decir "el nmero de kilmetros puede variar". Existen un gran nmero de ventajas para emplear los hilos de usuario as como los hilos del ncleo :

1. 2.

Ejecucin paralela : Los hilos de nivel kernel se pueden ejecutar realmente en paralelo en mquinas SMP (Symmetric Multiprocessors). Adems el mismo cdigo binario es vlido tanto para una mquina de un procesador como una mquina multiprocesador. Ejecucin de cdigo asncrono : Ya que existen mltiples hilos de ejecucin en un programa construido con hilos, es posible que otro hilo del mismo proceso sea planificado para ejecutar en el caso de que el hilo de ejecucin actual se bloquee. Esto incrementa la probabilidad de que la aplicacin asociada se ejecute mucho ms rpido. Normalmente existen algunas cosas a tener en cuenta :

3. 1. 2. 3.
En el modelo de hilos de usuario, algunos bloqueos bloquearn todo el proceso y se planificar un proceso diferente. En el modelo de hilos de ncleo, es posible que un hilo de otro proceso sea planificado cuando sucede un bloqueo del hilo actual. En ambos modelos, un hilo puede bloquearse y pueden no existir otros hilos listos para ejecutarse en el proceso, por cualquier tipo de razones.

As pues, el incremento del rendimiento no siempre est garantizado, aunque al menos, el uso de los hilos puede incrementar la probabilidad de un mejor rendimiento.

1.

2.

3.

Recursos compartidos : Los hilos comparten la mayora de los recursos en un proceso. Comparten el acceso a los ficheros, memoria compartida, y el espacio de direcciones virtual. El empleo de los hilos permite a los programadores conservar los recursos del sistema. El rendimiento puede beneficiarse tambin porque los recursos compartidos entre hilos necesitan menos gestin que los recursos compartidos entre procesos. Velocidad de las operaciones con hilos : Los hilos tienen un menor contexto que los procesos, as pues, las operaciones con hilos son generalmente ms rpidas que las operaciones similares con procesos. En especial, la creacin, finalizacin y cambio de contexto de un hilo, son operaciones ms rpidas con los hilos que con los procesos. Como ejemplo, en los procesadores de propsito general (SPARC, MIPS, ALPHA, HP-PA, x86) el cambio de contexto entre hilos de un mismo proceso lleva del orden de 50us. mientras que el cambio de contexto entre hilos de distintos procesos lleva del orden de 100us. Estos tiempos son muy inferiores al tiempo de cambio de contexto completo entre procesos. As en Solaris la creacin de un proceso es unas 30 veces ms lento que la creacin de un hilo, las variables de sincronizacin son unas 10 veces ms lentas y el cambio de contexto unas 5 veces ms lento. Tiempo de respuesta : Si es posible separar operaciones en un programa, los hilos se pueden emplear para mejorar los tiempos de respuesta de la aplicacin. Por ejemplo, supongamos que estamos usando una utilidad de correo electrnico. En una versin de un solo hilo, mientras almacenamos un mensaje podemos apreciar algn retraso antes de que la interfaz de usuario sea refrescada. Esto es porque el programa est primero haciendo una operacin de E/S para almacenar el mensaje y despus refresca la pantalla. Estas operaciones las realiza de forma secuencial. Normalmente, si esta aplicacin fuese una versin programada con varios hilos, un hilo podra gestionar la E/S mientras otro hilo

4.

5. 6.

gestiona la interfaz de usuario. Estas operaciones pueden funcionar en paralelo, con la consiguiente ganancia en el tiempo de respuesta. Programacin natural : Esta ventaja no est relacionada con el rendimiento, pero es importante. En algunas aplicaciones, el diseador puede necesitar instrucciones del tipo 'goto' y otros mtodos para superar las limitaciones de la programacin secuencial tradicional. Sin embargo, con los hilos, el programador no est limitado a emplear un modelo de ejecucin secuencial. As, las limitaciones de la programacin secuencial pueden solucionarse de forma ms intuitiva, menos compleja y ms natural, incluso empleando otros modelos de programacin, como la programacin concurrente. Adems muchos problemas son ms fciles de plantear y programar con un modelo de hilos debido a su estructura concurrente. Existe un estndar (POSIX 1003.1c) lo que permite hacer a las aplicaciones portables entre distintas plataformas. El mismo cdigo fuente es vlido para distintas plataformas. Objetos distribuidos : Con la aparicin del estndar de objetos distribuidos CORBA, los hilos toman un papel especial e importante. Los objetos distribuidos tienen una estructura multihilo inherentemente. Cada vez que se pide que un objeto realice una accin, el objeto ejecuta la accin mediante un hilo independiente, de forma que el objeto puede haber ms de un hilo al mismo tiempo. Adems los servidores de objetos se pueden construir con hilos de forma ms efectiva y con un mayor rendimiento.

You might also like