17
USO DE HILOS

Uso de hilos

Embed Size (px)

Citation preview

Page 1: Uso de hilos

USO DE HILOS

Page 2: Uso de hilos

Los hilos son mini procesos. cada hilo se ejecuta en forma estrictamente secuencial y tiene su propio contador de programa una pila para llevar un registro de su posición.

Page 3: Uso de hilos

Los hilos pueden crear hilos hijos, mientras un hilo esta bloqueado se puede ejecutar otra fila del mismo proceso en los distintos hilos de un proceso comparten un espacio de direcciones, y los hilos pueden tener distintos estados (en ejecución, bloqueado, listo y terminación).

Page 4: Uso de hilos
Page 5: Uso de hilos

Sincronización de hilos

Todos los hilos comparten el mismo espacio de direcciones y otros recursos como pueden ser archivos abiertos. Cualquier modificación de un recurso desde un hilo afecta al entorno del resto de los hilos del mismo proceso. Por lo tanto, es necesario sincronizar la actividad de los distintos hilos para que no interfieran unos con otros o corrompan estructuras de datos.

Page 6: Uso de hilos

Ventajas de los hilos • Las ventajas de los hilos se dan cuando hablamos de

Multihilos, que es cuando un proceso tiene múltiples hilos de ejecución los cuales realizan actividades distintas, que pueden o no ser cooperativas entre sí.

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

Page 7: Uso de hilos

• Se tarda mucho menos en terminar un hilo que un proceso, ya que cuando se elimina un proceso se debe eliminar el BCP 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 comunicación entre programas en ejecución.

Page 8: Uso de hilos

Usos de los hilos

Los hilos se inventaron para permitir la combinación del paralelismo con la ejecución secuencial y el bloqueo de las llamadas al sistema.

Page 9: Uso de hilos

Modelo del servidor/trabajador

• El servidor lee las solicitudes de trabajo del buzón del sistema.

• Después de examinar la solicitud elige a un hilo trabajador inactivo (es decir, bloqueado) y le envía la solicitud, lo cual se puede realizar al escribir un apuntador al mensaje en una palabra especial asociada a cada hilo.

• El servidor despierta entonces al trabajador dormido.

Page 10: Uso de hilos

• El hilo trabajador verifica si puede satisfacer la solicitud por medio del bloque caché compartido, al que tienen acceso todos los hilos.

• Si no envía un mensaje al disco para obtener el bloque necesario y se duerme esperando

el fin de la operación.

Page 11: Uso de hilos

Se llama: Al planificador y se inicializa otro hilo,

que tal vez sea el servidor, para pedir más trabajo; o.

A otro trabajador listo para realizar un trabajo.

Page 12: Uso de hilos

Modelo del servidor/trabajador

Page 13: Uso de hilos

Modelo de equipo

• Aquí todos los hilos son iguales y cada uno obtiene y procesa sus propias solicitudes.

• No hay servidor.• A veces llega trabajo que un hilo no puede

manejar, en particular si cada hilo se especializa en manejar cierto tipo de trabajo.

Page 14: Uso de hilos

• En este caso, se puede utilizar una cola de trabajo, la cual contiene todos los trabajos pendientes.

• Con este tipo de organización, un hilo debe verificar primero la cola de trabajo antes de buscar en el buzón del sistema.

Page 15: Uso de hilos

Modelo de equipo

Page 16: Uso de hilos

Modelo de entubamiento • El primer hilo genera ciertos datos y los transfiere al

siguiente para su procesamiento. • Los datos pasan de hilo en hilo y en cada etapa se

lleva a cabo cierto procesamiento. • Esta puede ser una buena opción en cierto

problemas.• Un programa diseñado adecuadamente y que utilice

hilos debe funcionar bien:• En una única cpu con hilos compartidos.• En un verdadero multiprocesador.

Page 17: Uso de hilos

Modelo de entubamiento