uso de hilos
TRANSCRIPT
![Page 1: Uso de hilos](https://reader035.vdocumento.com/reader035/viewer/2022081418/58a657311a28ab1c5b8b4c99/html5/thumbnails/1.jpg)
USO DE HILOS
![Page 2: Uso de hilos](https://reader035.vdocumento.com/reader035/viewer/2022081418/58a657311a28ab1c5b8b4c99/html5/thumbnails/2.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081418/58a657311a28ab1c5b8b4c99/html5/thumbnails/3.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081418/58a657311a28ab1c5b8b4c99/html5/thumbnails/4.jpg)
![Page 5: Uso de hilos](https://reader035.vdocumento.com/reader035/viewer/2022081418/58a657311a28ab1c5b8b4c99/html5/thumbnails/5.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081418/58a657311a28ab1c5b8b4c99/html5/thumbnails/6.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081418/58a657311a28ab1c5b8b4c99/html5/thumbnails/7.jpg)
• 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](https://reader035.vdocumento.com/reader035/viewer/2022081418/58a657311a28ab1c5b8b4c99/html5/thumbnails/8.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081418/58a657311a28ab1c5b8b4c99/html5/thumbnails/9.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081418/58a657311a28ab1c5b8b4c99/html5/thumbnails/10.jpg)
• 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](https://reader035.vdocumento.com/reader035/viewer/2022081418/58a657311a28ab1c5b8b4c99/html5/thumbnails/11.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081418/58a657311a28ab1c5b8b4c99/html5/thumbnails/12.jpg)
Modelo del servidor/trabajador
![Page 13: Uso de hilos](https://reader035.vdocumento.com/reader035/viewer/2022081418/58a657311a28ab1c5b8b4c99/html5/thumbnails/13.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081418/58a657311a28ab1c5b8b4c99/html5/thumbnails/14.jpg)
• 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](https://reader035.vdocumento.com/reader035/viewer/2022081418/58a657311a28ab1c5b8b4c99/html5/thumbnails/15.jpg)
Modelo de equipo
![Page 16: Uso de hilos](https://reader035.vdocumento.com/reader035/viewer/2022081418/58a657311a28ab1c5b8b4c99/html5/thumbnails/16.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081418/58a657311a28ab1c5b8b4c99/html5/thumbnails/17.jpg)
Modelo de entubamiento