0 evaluări0% au considerat acest document util (0 voturi)
174 vizualizări23 pagini
Este documento describe los conceptos de hilos y procesos ligeros. Explica que un hilo es un flujo de ejecución dentro de un proceso, y que un proceso puede tener uno o más hilos. Cada hilo tiene su propia información como registros y pila, pero comparte recursos como memoria y archivos con los demás hilos del mismo proceso. Las ventajas de usar hilos incluyen que si un hilo se bloquea, los otros pueden seguir ejecutándose, y que los recursos se comparten eficientemente entre hilos.
Este documento describe los conceptos de hilos y procesos ligeros. Explica que un hilo es un flujo de ejecución dentro de un proceso, y que un proceso puede tener uno o más hilos. Cada hilo tiene su propia información como registros y pila, pero comparte recursos como memoria y archivos con los demás hilos del mismo proceso. Las ventajas de usar hilos incluyen que si un hilo se bloquea, los otros pueden seguir ejecutándose, y que los recursos se comparten eficientemente entre hilos.
Drepturi de autor:
Attribution Non-Commercial (BY-NC)
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
Este documento describe los conceptos de hilos y procesos ligeros. Explica que un hilo es un flujo de ejecución dentro de un proceso, y que un proceso puede tener uno o más hilos. Cada hilo tiene su propia información como registros y pila, pero comparte recursos como memoria y archivos con los demás hilos del mismo proceso. Las ventajas de usar hilos incluyen que si un hilo se bloquea, los otros pueden seguir ejecutándose, y que los recursos se comparten eficientemente entre hilos.
Drepturi de autor:
Attribution Non-Commercial (BY-NC)
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
HILOS Una hebra es un hilo de control dentro de un proceso. Un proceso puede contener un solo flujo de ejecución (procesos clásicos) o más de un flujo de ejecución (procesos ligeros). Desde el punto de vista de la programación, cada proceso ligero se define como una función cuya ejecución se puede lanzar en paralelo con otras. HILOS Cada proceso ligero tiene información propia: Contador de Programa Registros Pila Estado del proceso ligero (ejecutando, listo o bloqueado) y comparte con los demás hilos El espacio de memoria Variables globales Archivos abiertos Procesos hijos Temporizadores Señales Semáforos Contabilidad Representación de Procesos e Hilos Ventajas del uso de Hilos Respuesta Respuesta: Si un hilo se bloquea el resto de los hilos puede seguir ejecutándose normalmente. Compartición de recursos: recursos Los hilos por defecto comparten la memoria y otros recursos del proceso al que pertenecen por lo que no hay que utilizar ningún mecanismo especial de comparticion entre procesos. Economía Economía: Reservar memoria y recursos en la creación de los procesos es una tarea costosa. Resulta mas económico crear hilos nuevos y alternarlos en el procesador que hacer lo mismo con procesos. Utilización de arquitecturas multiprocesador: multiprocesador Los procesos multihilo pueden aprovechar fácilmente una arquitectura multiprocesador ya que cada hilo podría ejecutarse en un procesador distinto. Estados de un Hilo Los principales estados de un hilo son Ejecución, Listo y Bloqueado. La planificación se lleva a cabo con los hilos, por lo que la mayor parte de la información sobre el estado de ejecución se mantiene en las estructuras de datos de los hilos. Existen varias acciones que afectan a todos los hilos de un proceso: La suspensión de un proceso, implica la descarga de todo el espacio de direcciones del proceso y todos los hilos de un proceso deben pasar al estado de suspendidos al mismo tiempo. La terminación del proceso implica la terminación de todos los hilos de dicho proceso. Estados de un Hilo Hay cuatro operaciones básicas relacionadas con el cambio de estado de los hilos: Creación Creación: cuando se crea un nuevo proceso normalmente también se crea un hilo para ese proceso, aunque posteriormente un hilo de un proceso puede crear otros hilos dentro del mismo proceso. El nuevo hilo tendrá su propio contexto y su propio espacio de pila, pasando a la cola de listos. Bloqueo Bloqueo: cuando un hilo necesita esperar por un suceso se bloquea (salvando sus registros de usuario, el contador de programa y los punteros de pila). El procesador podrá pasar a ejecutar otro hilo que esté listo. Desbloqueo Desbloqueo: cuando se produce el suceso por el que el hilo se bloqueó el hilo pasa a la cola de listos. Terminación Terminación: cuando un hilo finaliza se libera su contexto y sus pilas. Estados de un Hilo Aplicación de Multihilos – Uso 1 Aplicación de Multihilos – Uso 2 Un proceso servidor de archivos recibe solicitudes para leer y escribir archivos y devuelve los datos solicitados o acepta datos actualizados. A fin de mejorar el rendimiento, el servidor mantiene un caché de archivos recientemente usados en la memoria, leyendo del caché y escribiendo en él siempre que es posible. Aplicación de Multihilos – Uso 2 Si el servidor utiliza varios hilos. Cuando llega una solicitud, se le entrega a un hilo para que la procese. Si ese hilo se bloquea esperando una transferencia de disco, los demás hilos pueden ejecutarse y atender nuevas solicitudes. Aplicación de Multihilos – Uso 3 Los navegadores de internet, utilizan varios hilos para descargar cada una de las imágenes que se encuentran en una misma página web. De esta manera se acelera el rendimiento. Implementación de Hilos Existen dos grandes categorías para la implementación de los hilos: Hilos a nivel de usuario (HU) Hilos a nivel del núcleo (HN). Hilos a Nivel de Usuario En una aplicación HU pura, todo el trabajo de gestión de hilos lo realiza la aplicación mientras que el núcleo no es consciente de ello. Resulta posible programar cualquier aplicación como multihilo mediante una biblioteca de hilos. Esta contiene el código para crear, destruir y sincronizar hilos, para intercambiar mensajes y datos entre hilos y para planificar la ejecución de los hilos salvando y restaurando el contexto de los mismos. Ejemplos de bibliotecas de hilos pueden ser la MV Java, POSIX Pthreads, Mach C-threads y Solaris threads y Win32. Desde el punto de vista del núcleo, la aplicación se ejecuta bajo la forma de un sólo proceso, pero la biblioteca de hilos crea y planifica los hilos en el tiempo de ejecución que le toque al proceso subyacente (Ver Figura Siguiente) Hilos a Nivel de Usuario Hilos a Nivel de Usuario - Ventajas
El intercambio entre dos hilos no necesita los
privilegios del núcleo, lo que evita la sobrecarga de los cambios de modo de ejecución. Se puede realizar una planificación a medida de la aplicación sin afectar a la planificación subyacente del sistema operativo. Los HU se pueden ejecutar sobre cualquier sistema operativo. Hilos a Nivel de Usuario - Desventajas
Como la mayoría de las llamadas al sistema
producen bloqueo en el proceso que las invoca, la llamada al sistema de un hilo puede bloquear a todos los demás hilos del proceso. No puede aprovechar las ventajas de un entorno multiprocesador, ya que el proceso está asignado a un único procesador. Hilos a Nivel del Núcleo En una aplicación con hilos a nivel de núcleo todo el trabajo de gestión de hilos lo realiza el núcleo. Un ejemplo de este caso es el sistemas operativo W2000. El núcleo mantiene la información de contexto del proceso como un todo y la de cada hilo dentro del proceso. El núcleo realiza la planificación en función de los hilos. Se pueden planificar simultáneamente múltiples hilos del mismo proceso en un entorno multiprocesador. Además, si se bloquea un hilo del proceso los demás siguen pudiendo ejecutarse. Otra ventaja es que las mismas funciones del núcleo pueden ser multihilo. La principal desventaja es que el paso del control de un hilo a otro dentro del mismo proceso necesita un cambio de modo de ejecución a modo núcleo. Eso sugiere que aunque el enfoque HN sea mas rápido que el basado en monohilo, todavía resulte más lento que el HU. Combinaciones Algunos sistemas operativos como Solaris combinan los enfoques HU y HN. La creación de hilos así como la mayor parte de la planificación y sincronización de los hilos de una aplicación se realiza en el espacio del usuario. Los múltiples HU se pueden asociar con varios HN a través de los llamados procesos ligeros o lightweight process (LWP). Así, los hilos de una aplicación se pueden ejecutar en paralelo en un entorno multiprocesador, y las llamadas al sistema bloqueadoras no bloquearan todo el proceso. Con una buena configuración entre HU y HN, este enfoque puede combinar las ventajas de ambos modos minimizando sus inconvenientes. Relación entre Hilos y Procesos H P Descripción Ejemplos 1 1 Cada hilo de ejecución es un proceso Implementacio con sus propios recursos y espacio de nes UNIX direcciones. clásicas. N 1 Un proceso define un espacio de Windows direcciones y unos recursos dinámicos NT/2000, propios que pueden ser utilizados por Solaris, OS/2, varios hilos. Mach 1 M Un hilo puede emigrar del entorno de un Ra (Clouds), proceso a otro. Esto permite que un hilo Emerald se pueda mover fácilmente entre sistemas distintos. n M Combina los atributos de los dos últimos TRIX casos. Aldus PageMaker Aldus PageMaker, se ejecuta para OS/2. Es una herramienta de composición, diseño y producción de publicaciones. La estructura de hilos, optimiza el grado de respuesta de la aplicación. Siempre hay tres hilos activos: un hilo de gestión de sucesos, un hilo para el dibujo de la pantalla, y un hilo de servicio. Aldus PageMaker