Hilos (Threads)
Ingeniería de software
M.Sc. Johan Sebastian Giraldo H
Procesos sencillos y multi-hilo
Beneficios
◼BENEFICIOS
▪ Mejora la respuesta
▪ Compartir recursos
▪ Economía
▪ Utilización de arquitectura multi procesador
◼TIPOS
▪ Hilos de usuarios – Administración de hilos realizado por biblioteca en nivel usuario.
▪ Hilos de kernel – Hilos soportados directamente por el kernel.
Arquitectura Servidor Multi-Hilo
Programación Multi-core
Nueva forma de trabajo en el desarrollo de software
◼División de actividades
◼Balanceo de cargas
◼División de datos
◼Pruebas y depuración
Ejecución concurrente sobre un sistema un solo núcleo
Ejecución paralela en un sistema con múltiples núcleos
Hilos de usuario
◼La administración de hilos a nivel de usuario se realiza a través de librerías
◼Tres de las principales librerías para hilos son las siguientes:
▪ POSIX Pthreads
▪ Win32 threads ▪ Java threads
Hilos de kernel
◼Soportados por el Kernel
◼Ejemplos
▪ Windows 10/11
▪ Linux
▪ Mac OS X
Modelos de Multi-Hilo
◼Muchos a Uno
◼Uno a Uno
◼Muchos a Muchos
Modelos: Muchos a Uno
Modelos: Uno a Uno
Cada hilo de nivel de usuario es relacionado con un hilo del Kernel
Ejemplos:
Modelos: Uno a Uno
Modelos: Muchos a Muchos
Todos los hilos de nivel de usuario son relacionados a muchos hilos del Kernel
◼Ejemplo:
▪ Solaris anteriores a la version 9
▪ Windows NT/2000 con el paquete ThreadFiber
Modelos: Muchos a Muchos
Modelos de Dos Niveles
Similar a “Muchos
a Muchos”, excepto que permite asociar un hilo de nivel de usuario a uno de kernel
Modelos de Dos Niveles
Estados de un hilo en Java
Cancelando un hilo de ejecución
◼ Terminar un hilo antes que termine
◼ Dos enfoques generales:
▪ Cancelación asíncrona termina el hilo de manera inmediata
▪ Cancelación diferida permite al hilo objetivo verificar periódicamente si debe ser cancelado
Cancelando un hilo de ejecución
◼Cancelación diferida en Java ▪ Interrupción de hilo
Cancelando un hilo de ejecución
◼Cancelación diferida en Java
▪ Checando el estado de la interrupción
¡ GRACIAS !
Referencias
Luis Eduardo Sepúlveda Rodríguez, PhD. Hilos (Threads).