hilos hebras

9
Procesos ligeros: hilos y hebras 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.

Upload: john-goyeneche

Post on 16-Aug-2015

22 views

Category:

Education


6 download

TRANSCRIPT

  1. 1. Procesos ligeros: hilos y hebras Un hilo de ejecucin, hebra o subproceso es la unidad de procesamiento ms pequea que puede ser planificada por un sistema operativo.
  2. 2. La creacin de un nuevo hilo es una caracterstica que permite a una aplicacin realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecucin comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situacin de autenticacin, etc. Esta tcnica permite simplificar el diseo de una aplicacin que debe llevar a cabo distintas funciones simultneamente.
  3. 3. Los hilos de ejecucin que comparten los mismos recursos, sumados a estos recursos, son en conjunto conocidos como un proceso. El hecho de que los hilos de ejecucin de un mismo proceso compartan los recursos hace que cualquiera de estos hilos pueda modificar stos. Cuando un hilo modifica un dato en la memoria, los otros hilos acceden a ese dato modificado inmediatamente.
  4. 4. Ejemplo Un ejemplo de la utilizacin de hilos es tener un hilo atento a la interfaz grfica (iconos, botones, ventanas), mientras otro hilo hace una larga operacin internamente. De esta manera el programa responde de manera ms gil a la interaccin con el usuario. Tambin pueden ser utilizados por una aplicacin servidora para dar servicio a mltiples clientes.
  5. 5. Estados de un hilo Los principales estados de los hilos son: Ejecucin, Listo y Bloqueado. No tiene sentido asociar estados de suspensin de hilos ya que es un concepto de proceso. En todo caso, si un proceso est expulsado de la memoria principal (RAM), todos sus hilos debern estarlo ya que todos comparten el espacio de direcciones del proceso.
  6. 6. Cambio de estados Creacin: Cuando se crea un proceso se crea un hilo para ese proceso. Luego, este hilo puede crear otros hilos dentro del mismo proceso, proporcionando un puntero de instruccin y los argumentos del nuevo hilo. El hilo tendr su propio contexto y su propio espacio de la columna, y pasar al final de los Listos. Bloqueo: Cuando un hilo necesita esperar por un suceso, se bloquea (salvando sus registros de usuario, contador de programa y punteros de pila). Ahora el procesador podr pasar a ejecutar otro hilo que est en la final de los Listos mientras el anterior permanece bloqueado. Desbloqueo: Cuando el suceso por el que el hilo se bloque se produce, el mismo pasa a la final de los Listos. Terminacin: Cuando un hilo finaliza se liberan tanto su contexto como sus columnas.
  7. 7. Ventajas de los hilos contra procesos Se tarda mucho menos tiempo en crear un hilo nuevo en un proceso existente que en crear un proceso. Algunas investigaciones llevan al resultado que esto es as en un factor de 10. Se tarda mucho menos en terminar un hilo que un proceso, ya que cuando se elimina un proceso se debe eliminar el BCP1 del mismo, mientras que un hilo se elimina su contexto y pila. Se tarda mucho menos tiempo en cambiar entre dos hilos de un mismo proceso Los hilos aumentan la eficiencia de la comunicacin entre programas en ejecucin. En la mayora de los sistemas en la comunicacin entre procesos debe intervenir el ncleo para ofrecer proteccin de los recursos y realizar la comunicacin misma. En cambio, entre hilos pueden comunicarse entre s sin la invocacin al ncleo. Por lo tanto, si hay una aplicacin que debe implementarse como un conjunto de unidades de ejecucin relacionadas, es ms eficiente hacerlo con una coleccin de hilos que con una coleccin de procesos separados.