Definición de Hebras (Hilos)

Spread the love

 

Definición de Hebras (Hilos)

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 .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.

Un hilo es simplemente una tarea que puede ser ejecutada al mismo tiempo con otra tarea.

Los hilos de ejecución que comparten los mismos recursos, sumados a estos recursos, son en conjunto conocidos como un proceso. El hecho de que los hilos de ejecución de un mismo proceso compartan los recursos hace que cualquiera de estos hilos pueda modificar éstos

Modelos Multi hebras.

Multi hilo apropia TiVo: permite al sistema operativo determinar cuándo debe haber un cambio de contexto. La desventaja de esto es que el sistema puede hacer un cambio de contexto en un momento inadecuado, causando un fenómeno conocido como inversión de prioridades y otros problemas.

Multi hilo cooperativo: depende del mismo hilo abandonar el control cuando llega a un punto de detención, lo cual puede traer problemas cuando el hilo espera la disponibilidad de un recurso. Las hebras que pertenecen a un mismo proceso comparten determinada información, que le permite una rápida comunicación entre ellas, pues comparten memoria principal (por tanto las variables del proceso), sin embargo cada hebra necesita información propia, esto debido a que en si, una hebra es independiente. Dentro de los datos que son específicos de cada hebra se encuentran:

Identificador o (TID) que permite de manera única e inequívoca referirse a una hebra en particular.

Estado, que permite saber que sucede con la hebra, ya que esta puede estar ejecutándose, lista para ser asignada a un procesador, o en espera de algún evento (ej: evento de I/O).

Puntero de instrucción, que nos permite ir avanzando secuencialmente por las instrucciones de la hebra y no perder el hilo de ejecución (instrucción en la que me encuentro) cuando la hebra pasa a un estado de bloqueo.

Prioridad, ya que indiferente de la prioridad que tenga el proceso, cada hebra tiene su propia prioridad.

Afinidad, que si bien no siempre se encuentra en las hebras, resulta sumamente útil para mejorar rendimiento, ya que liga a una hebra con el procesador donde se estaba ejecutando.

Caso de sistemas Transaccionales

Si bien los mencionados anteriormente son datos específicos de una hebra, quedan algunos por mencionar, en particular el caso de los sistemas dedicados a hacer transacciones, pues una excelente manera para mejorar tiempos de respuesta para transacciones de alta demanda, es usando hebras

Consideraciones sobre las hebras.

Las consideraciones sobre las hebras toma en cuenta los temas de cómo tratar, implementar, de como se comportan las hebras entre otros detalles.