🧪 Simulador SO — Planificación & Sistema de Archivos


Informe técnico - simulador de planificación de CPU, sistema de archivos virtual y GUI web en Django

Integrantes

Este informe documenta el repositorio proyecto-final-so, que integra un simulador discreto de planificación de procesos (FCFS, SJF y Round Robin) y un sistema de archivos virtual operado vía CLI, así como la GUI web desarrollada en Django que expone la lógica del simulador y del sistema de archivos a través de una interfaz web. Se incluyen detalles de arquitectura, decisiones de diseño, flujo de ejecución y evidencias de prueba.

La GUI de escritorio referenciada en algunos demos (PyWebview) no se encuentra en este árbol; la GUI final en producción corresponde a una aplicación web en Django descrita en este informe.


Objetivo y alcance


Arquitectura general


Detalle técnico: simulador de planificación (core/scheduler)

Algoritmos (core/scheduler/algorithms)

Ciclo de simulación (core/scheduler/simulator.py)

Modelo de procesos (core/scheduler/pcb.py)

Colas y estados (core/scheduler/queues.py, core/scheduler/states.py)

Métricas (core/scheduler/metrics.py)

Pruebas unitarias (core/scheduler/tests/test_scheduler.py)


Detalle técnico: sistema de archivos virtual (core/fs)

Modelos (core/fs/models.py)

Permisos (core/fs/permissions.py)

Operaciones (core/fs/ops.py)

Renderizado de árbol (core/fs/tree_renderer.py)


Servicios y adaptadores

SimService (core/services/sim_service.py)

Traduce un SimulationRequest en PCBs, instancia el algoritmo solicitado (fcfs, rr, sjf), arma el SchedulerSimulator y retorna SimulationMetrics.

FsService (core/services/fs_service.py)

Mapea comandos de texto a métodos de FileSystemOps y normaliza las salidas para la CLI o para cualquier capa superior (por ejemplo, vistas Django).

CLI (adapters/cli/main.py)


GUI web en Django

Además de la CLI, el proyecto cuenta con una interfaz gráfica web (GUI) que permite ejecutar los algoritmos de planificación y visualizar el sistema de archivos virtual desde el navegador.

Tecnologías utilizadas

Integración con el dominio


Datos, demos y pruebas de soporte

Escenarios de entrada (data/examples)

Demos


Instalación y ejecución recomendada (CLI)

python -m pip install -r requirements.txt

# Simulador
python -m adapters.cli.main sim --algo fcfs --input data/examples/scenario1.csv
python -m adapters.cli.main sim --algo rr --quantum 2 --input data/examples/scenario2.json

# Shell del sistema de archivos
python -m adapters.cli.main fs --user alice

Para validar el simulador, ejecutar:

python -m pytest core/scheduler/tests/test_scheduler.py

Para la GUI en Django, seguir las instrucciones del repositorio https://github.com/DieGOD24/backend_so/tree/main (instalación de dependencias, migraciones, ejecución de manage.py runserver, etc.).


Limitaciones y consideraciones


Autoría y roles


Referencia y contexto académico


Disclaimer sobre uso de IA

Este informe y parte del soporte documental fueron preparados con asistencia de agentes de IA. Se recomienda verificar y validar los detalles técnicos antes de utilizarlos en entornos de producción o como insumo directo para evaluación académica formal.