Los hilos dentro de una misma aplicación comparten
Enviado por thefigo • 8 de Mayo de 2015 • Informe • 379 Palabras (2 Páginas) • 262 Visitas
La diferencia entre los conceptos de un hilo y un proceso es que el primero maneja procesos ligeros, en cambio el segundo maneja proceso pesados. Por ende, el hilo es una unidad básica del uso del procesador, y posee en un contador de programa, un juego de registros y un espacio de pila.
Los hilos dentro de una misma aplicación comparten:
La sección de código.
La sección de datos.
Los recursos del SO (archivos abiertos y señales).
Hay dos grandes categorías en la implementación de hilos:
Hilos a nivel de usuario (UTL)
En una aplicación ULT pura, todo el trabajo de gestión de hilos lo realiza la aplicación y el núcleo o kernel no es consciente de la existencia de hilos. Es posible programar una aplicación como multihilo mediante una biblioteca de hilos. La misma contiene el código para crear y destruir hilos, intercambiar mensajes y datos entre hilos, para planificar la ejecución de hilos y para salvar y restaurar el contexto de los hilos.
Todas las operaciones descritas se llevan a cabo en el espacio de usuario de un mismo proceso. El kernel continua planificando el proceso como una unidad y asignándole un único estado (Listo, bloqueado, etc.).
Ventajas de los ULT
El intercambio de los hilos no necesita los privilegios del modo kernel, porque todas las estructuras de datos están en el espacio de direcciones de usuario de un mismo proceso. Por lo tanto, el proceso no debe cambiar a modo kernel para gestionar hilos. Se evita la sobrecarga de cambio de modo y con esto el sobrecoste u overhead.
Se puede realizar una planificación específica. Dependiendo de que aplicación sea, se puede decidir por una u otra planificación según sus ventajas.
Los ULT pueden ejecutar en cualquier sistema operativo. La biblioteca de hilos es un conjunto compartido.
Desventajas de los ULT
En la mayoría de los sistemas operativos las llamadas al sistema (System calls) son bloqueantes. Cuando un hilo realiza una llamada al sistema, se bloquea el mismo y también el resto de los hilos del proceso.
En una estrategia ULT pura, una aplicación multihilo no puede aprovechar las ventajas de los multiprocesadores. El núcleo asigna un solo proceso a un solo procesador, ya que como el núcleo no interviene, ve al conjunto de hilos como un solo proceso.
Hilos a nivel de Kernel.
...