2. 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.
3. 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).
4.
5. 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.
6. 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.
7. • 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.
8. 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.
9. 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.
10. • 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.
11. 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.
13. 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.
14. • 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.
16. 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.