Este proyecto es un trabajo práctico que simula un sistema distribuido, implementando conceptos clave de sistemas operativos como planificación de procesos, administración de memoria y sistema de archivos.
Incluye los siguientes módulos:
- Kernel:
- Planificación de procesos (algoritmos FIFO, Round Robin y Virtual Round Robin)
- Manejo de interfaces
- Manejo de recursos (semaforos)
- CPU:
- Ejecución de instrucciones
- MMU
- Memoria:
- Asignación de memoria a procesos mediante paginación simple
- Interfaces de I/O
- Sleep
- STDIN
- STDOUT
- Filesystem (asignación contigua de bloques)
Enunciado: C - Comenta
Pruebas realizadas: Pruebas
Para poder compilar y ejecutar el proyecto, es necesario tener instalada la biblioteca so-commons-library:
git clone https://github.com/sisoputnfrba/so-commons-library
cd so-commons-library
make debug
make install
Cada módulo del proyecto se compila de forma independiente a través de un
archivo makefile
. Para compilar un módulo, es necesario ejecutar el comando
make
desde la carpeta correspondiente.
El ejecutable resultante se guardará en la carpeta bin
del módulo.
- Configurar las rutas a las carpetas de scripts en los archivos
.config
de kernel y memoria. - Modificar las IPs de los módulos en caso de ser ejecutado en múltiples computadoras.
- Ejecutar los módulos en el orden: Memoria -> CPU -> Kernel -> Interfaces.
Alternativamente, se provee un script,
run_tmux.sh
, que ejecuta los módulos, en orden, en distintas ventanas de tmux.