Estructura de la entrega
Entregamos la memoria y el código C compilable con Makefile. Empieza por el análisis del problema de concurrencia, sigue con el diseño usando procesos (fork, exec) o hilos POSIX (pthreads) y la sincronización con semáforos y memoria compartida. Después la implementación del productor-consumidor o lectores-escritores, las pruebas de ejecución sin interbloqueos y la justificación de cada decisión comentada línea a línea.