HILOS

download HILOS

of 18

description

Hilos en sistemas operativos

Transcript of HILOS

HILOS

HILOSHilos: La principal razn de tener hilos es que en muchas aplicaciones se desarrollan varias actividades a la vez. Algunas de sas se pueden bloquear de vez en cuando. Al descomponer una aplicacin en varios hilos secuenciales que se ejecutan en cuasi-paralelo, el modelo de programacin se simplifica. Hilos: Con los hilos agregamos un nuevo elemento: la habilidad de las entidades en paralelo de compartir un espacio de direcciones y todos sus datos entre ellas. Esta habilidad es esencial para ciertas aplicaciones, razn por la cual no funcionar el tener varios procesos (con sus espacios de direcciones separados)Hilos:Un segundo argumento para tener hilos es que, como son ms ligeros que los procesos, son mas fciles de crear (es decir, rpidos) y destruir. En muchos sistemas, la creacin de un hilo es de 10 a 100 veces ms rpida que la de un proceso. Hilos:Una tercera razn de tener hilos es tambin un argumento relacionado con el rendimiento. Los hilos no producen un aumento en el rendimiento cuando todos ellos estn ligados a la CPU, pero cuando hay una cantidad considerable de clculos y operaciones de E/S, al tener hilos estas actividades se pueden traslapar, con lo cual se agiliza la velocidad de la aplicacin.Ejemplo: Procesador de TextoUna tercera razn de tener hilos es tambin un argumento relacionado con el rendimiento. Los hilos no producen un aumento en el rendimiento cuando todos ellos estn ligados a la CPU, pero cuando hay una cantidad considerable de clculos y operaciones de E/S, al tener hilos estas activi- dades se pueden traslapar, con lo cual se agiliza la velocidad de la aplicacinEjemplo: Procesador de TextoAqu pueden ayudar los hilos. Suponga que el procesador de palabras se escribe como un pro- grama con dos hilos. Un hilo interacta con el usuario y el otro se encarga de volver a dar formato en segundo plano. Tan pronto como se elimina el enunciado de la pgina 1, el hilo interactivo indi- ca al hilo encargado de volver a dar formato que aplique de nuevo formato a todo el libroEjemplo: Procesador de TextoYa que estamos en ello, por qu no agregar un tercer hilo? Muchos procesadores de palabras tienen la caracterstica de guardar de manera automtica todo el archivo en el disco cada cierto nmero de minutos, para proteger al usuario contra la prdida de todo un da de trabajo en caso de un fallo en el programa, el sistema o la energa. El tercer hilo se puede encargar de los respaldos en disco sin interferir con los otros dos.

Ejemplo: Procesador de Texto

Ejemplo: Procesador de TextoSi el programa tuviera slo un hilo, entonces cada vez que iniciara un respaldo en el disco se ignoraran los comandos del teclado y el ratn hasta que se terminara el respaldo. El usuario sin du- da considerara esto como un rendimiento pobre. De manera alternativa, los eventos de teclado y ratn podran interrumpir el respaldo en disco, permitiendo un buen rendimiento pero produciendo un modelo de programacin complejo, controlado por interrupciones. Ejemplo: Procesador de TextoCon tres hilos, el modelo de programacin es mucho ms simple. El primer hilo interacta slo con el usuario, el segundo proceso vuelve a dar formato al documento cuando se le indica y el tercero escribe el contenido de la RAM al disco en forma peridica. Multihilamiento:En la figura 2-11(a) podemos ver tres procesos tradicionales. Cada proceso tiene su propio es- pacio de direcciones y un solo hilo de control. Por el contrario, en la figura 2-11(b) vemos un solo proceso con tres hilos de control. Aunque en ambos casos tenemos tres hilos, en la figura 2-11(a) cada uno de ellos opera en un espacio de direcciones distinto, mientras que en la figura 2-11(b) los tres comparten el mismo espacio de direcciones.Multihilamiento:

Multihilamiento: La CPU conmuta rpidamente entre un hilo y otro, dando la ilusin de que los hilos se eje- cutan en paralelo, aunque en una CPU ms lenta que la verdadera. Con tres hilos limitados a clculos en un proceso, los hilos pareceran ejecutarse en paralelo, cada uno en una CPU con un tercio de la velocidad de la CPU verdadera.Multihilamiento:Todos los hilos tienen el mismo espacio de direcciones, lo cual significa que tambin comparten las mismas variables globales. Como cada hilo puede acceder a cada direccin de memoria dentro del espacio de direcciones del proceso, un hilo puede leer, escribir o incluso borrar la pila de otro hilo. No hay proteccin entre los hilos debido a que (1) es imposible y (2) no debe ser necesario.Multihilamiento:

Multihilamiento:Al igual que un proceso tradicional (es decir, un proceso con slo un hilo), un hilo puede estar en uno de varios estados: en ejecucin, bloqueado, listo o terminado. Un hilo en ejecucin tiene la CPU en un momento dado y est activo. Un hilo bloqueado est esperando a que cierto evento lo desbloquee. Multihilamiento:Por ejemplo, cuando un hilo realiza una llamada al sistema para leer datos del teclado, se bloquea hasta que se escribe la entrada. Un hilo puede bloquearse en espera de que ocurra algn evento externo o que algn otro hilo lo desbloquee. Un hilo listo se programa para ejecutarse y lo har tan pronto como sea su turno. Las transiciones entre los estados de los hilos son las mismas que las transiciones entre los estados de los procesos