Hilos (Threads)

Hilos (Threads) Un hilo de ejecución, hebra o subproceso es la unidad de procesamiento más pequeña que puede ser planifi

Views 111 Downloads 2 File size 128KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Hilos (Threads) Un hilo de ejecución, hebra o subproceso es la unidad de procesamiento más pequeña que puede ser planificada por un sistema operativo. La creación de un nuevo hilo es una característica que permite a una aplicación realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente. Cada hilo se ejecuta en forma estrictamente secuencial y tiene su propio contador de programa una pila para llevar un registro de su posición. Un hilo es simplemente una tarea que puede ser ejecutada al mismo tiempo con otra tarea.

Ventajas de usar hilos    

Respuesta: el tiempo de respuesta mejora, ya que el programa puede continuar ejecutándose, aunque parte de él esté bloqueado. Compartir recursos: los hilos comparten la memoria y los recursos del proceso al que pertenecen, por lo que se puede tener varios hilos de ejecución dentro del mismo espacio de direcciones. Economía: Es más fácil la creación, cambio de contexto y gestión de hilos que de procesos. Utilización múltiples CPUs: permite que hilos de un mismo proceso ejecuten en diferentes CPUs a la vez. En un proceso mono-hilo, un proceso ejecuta en una única CPU, independientemente de cuantas tenga disponibles.

Hilos a nivel de Usuario Son implementados en alguna librería. Estos hilos se gestionan sin soporte del SO, el cual solo reconoce un hilo de ejecución. Hilos a nivel de Kernel: Los hilos a nivel de kernel tienen como gran beneficio poder aprovechar mejor las arquitecturas multiprocesadores, y que proporcionan un mejor tiempo de

respuesta, ya que si un hilo se bloquea, los otros pueden seguir ejecutando.

Multihilos Tienen soporte en hardware para ejecutar eficientemente múltiples hilos de ejecución. Es una forma especializada de la multitarea. Una cierta crítica del multihilo incluye:   

Los múltiples hilos pueden interferir uno con el otro al compartir recursos de hardware como cachés. Los tiempos de ejecución de un solo hilo no son mejorados, sino por el contrario, pueden ser degradados. El soporte de hardware para multihilo es más visible al software que el multiprocesamiento, por lo tanto requiriendo más cambios tanto a las aplicaciones como el sistema operativo.

Las técnicas de hardware usadas para soportar multihilo a menudo paralelizan las técnicas de software usadas para la multitarea de los programas de computadora.