Ejercicios | Hilos
A continuación se describe seis ejercicios sencillos que abordan los temas de introducción a la programación concurrente, conceptos de programación concurrente, arquitecturas paralelas y distribuidas, así como algoritmos paralelos y distribuidos.
- Escribe un programa en el lenguaje de programación de tu elección que cree dos hilos. Cada hilo debe imprimir un mensaje simple, como “Hola desde Hilo 1” y “Hola desde Hilo 2”.
- Modifica el programa anterior para que ambos hilos intenten acceder y modificar una variable compartida. Utiliza un mecanismo de exclusión mutua (por ejemplo, mutex) para garantizar que solo un hilo pueda modificar la variable a la vez.
- Crea un programa que simule la producción y el consumo de un recurso compartido utilizando monitores. Puedes elegir un escenario simple, como un productor que agrega elementos a un búfer y un consumidor que los retira.
- Diseña un programa que utilice semáforos para sincronizar la ejecución de tres hilos. Cada hilo debe imprimir un mensaje en un orden específico, por ejemplo, “Hilo 1”, “Hilo 2” y “Hilo 3” en ese orden.
- Desarrolla un programa MPI simple en el que un proceso maestro envíe un mensaje a varios procesos esclavos, y estos procesos esclavos respondan al maestro. Puedes usar funciones MPI como
MPI_Send
yMPI_Recv
. - Implementa un problema clásico de productor-consumidor utilizando hilos y semáforos. El productor debe agregar elementos a un búfer compartido, y el consumidor debe retirarlos. Utiliza semáforos para evitar condiciones de carrera.
Estos ejercicios están diseñados para abordar conceptos básicos en hilos, exclusión mutua, monitores, semáforos y MPI. Se pueden adaptar al lenguaje de programación que se este utilizando.