Este proyecto incluye varios ejercicios relacionados con la sincronización y comunicación entre procesos. Los ejercicios están escritos en C y abordan temas como la gestión de procesos, la sincronización utilizando semáforos, y la comunicación entre procesos mediante pipes, colas de mensajes, entre otros.
El proyecto se organiza en dos directorios principales:
-
src/: Contiene los archivos fuente del proyecto.Process_Com/: Implementaciones relacionadas con la comunicación de procesos.Minishell/: Shell interactiva.cmd/: Directorio de comandos de la shell.
PumperInc/: Implementaciones de sistemas de colas y pipes.
Process_Sync/: Implementaciones relacionadas con la sincronización de procesos.Motos/: Ejemplo de sincronización de varios procesos.SantaClaus/: Simulación de tareas sincronizadas.
-
bin/: Contiene los archivos binarios generados después de la compilación, con el mismo formato de carpetas quesrc.
- GCC o cualquier compilador compatible con C.
- make para la automatización de la compilación y ejecución.
-
Cloná el repositorio en tu máquina local:
git clone https://github.com/tu_usuario/tu_repositorio.git cd tu_repositorio -
Usá
makepara compilar todos los archivos fuente:make all
Esto generará los archivos binarios dentro de la carpeta
bin/, correspondientes a cada módulo, al igual que compilará todos los comandos de la shell.
Para ejecutar los programas de manera individual, podés usar las siguientes instrucciones:
-
Ejecutar un programa específico:
make run_minishell # Ejecutar el programa Minishell make run_pumper_queues # Ejecutar el programa PumperInc - Queues make run_pumper_pipes # Ejecutar el programa PumperInc - Pipes make run_motos # Ejecutar el programa Motos make run_santaclaus # Ejecutar el programa SantaClaus
Para eliminar los binarios generados, usá el siguiente comando:
make cleanEsto eliminará todos los archivos dentro de bin/.
Este programa simula una shell básica que interactúa con el sistema operativo, permitiendo al usuario ejecutar comandos.
Implementación de un sistema de comunicación entre procesos utilizando pipes y colas de mensajes.
Ejemplo de sincronización de procesos utilizando semáforos. El caso de estudio es la producción de un taller de motos.
Ejemplo de sincronización de procesos utilizando semáforos. El caso de estudio es Santa Claus en su tienda del Polo Norte, repartiendo regalos y atendiendo elfos.
Las contribuciones son bienvenidas. Si tenés sugerencias o mejoras para el proyecto, por favor, abrí un issue o realizá un pull request.
Este proyecto está bajo la Licencia MIT - consultá el archivo LICENSE para más detalles.