Uso de hilos

Post on 17-Feb-2017

220 views 0 download

Transcript of Uso de hilos

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.

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

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.

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.

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

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.

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.

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

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.

Modelo del servidor/trabajador

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.

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

Modelo de equipo

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.

Modelo de entubamiento