Repository di esercizi e progetto finale per simulazione ad eventi discreti in C (approccio Next Event Simulation), con supporto a post-processing MATLAB.
- Panoramica
- Struttura Del Repository
- Prerequisiti
- Quick Start
- Build Ed Esecuzione
- Progetto Finale
- Analisi E Validazione
- Troubleshooting
- Licenza
Il repository contiene piu step evolutivi di simulatori a eventi discreti:
es1: simulatore base single-server queue da traccia (ssq2.dat).es2: versione con Future Event List e list manager dedicato.es7: simulatore machine repairman (stima classica con metriche di stazione).es7-small: variante machine repairman con cicli rigenerativi e stima intervallare.final-project: simulatore central server system multi-stazione, configurabile via JSON, con supporto a campagne di validazione.
| Percorso | Contenuto |
|---|---|
es1/ |
Versioni storiche e versione corrente ssq2_v4.c + traccia ssq2.dat |
es2/ |
Simulatore NES single-server con Makefile |
es7/ |
Simulatore machine repairman completo (include/, src/) |
es7-small/ |
Variante con rigenerazione + script MATLAB MVA |
final-project/ |
Progetto finale (simulatore central server, config, CSV, script MATLAB, report) |
- Compilatore C (
gcc). make.- Libreria matematica standard (
-lm, gia inclusa nei Makefile). - MATLAB/Octave opzionale per analisi in
matlab/.
Nota Windows:
- I Makefile usano comandi POSIX (
mkdir -p,rm -rf,./bin/...). - E consigliato usare WSL, Git Bash o MSYS2/MinGW.
- Se necessario, sostituisci
makeconmingw32-makenel tuo ambiente.
cd SimMod-2425Compilazione rapida delle cartelle principali:
cd es2 && make
cd ../es7 && make
cd ../es7-small && make
cd ../final-project && makees1 non include un Makefile: compila manualmente.
cd es1
gcc -Wall -Wextra -O2 ssq2_v4.c -o ssq2_v4 -lm
./ssq2_v4Il programma legge ssq2.dat dalla directory corrente.
cd es2
make
./bin/NESssqIn alternativa:
make runPulizia:
make cleancd es7
make
./bin/NESmrsPulizia:
make cleancd es7-small
make
./bin/NESmrsPulizia:
make cleancd final-project
makeEseguibile generato: final-project/bin/NEScss
cd final-project
./bin/NEScssCon path di default, il programma cerca nella working directory:
./config.json./student_t_values.csv
-h mostra help
-v 0|1|2 livello di verbosita
-c <file> file configurazione JSON
-n <id> indice configurazione nel file JSON
-t <file> tabella valori t di Student
-i <file> file semi iniziali da leggere
-o <file> file dove salvare i semi finali
-d abilita debug
-l stampa stato simulatore nei primi eventi
Esempio completo:
cd final-project
./bin/NEScss -n 1 -v 2 -c ./config.json -t ./student_t_values.csv -o ./seeds/last_seeds.txtRiutilizzo dei semi da una run precedente:
cd final-project
./bin/NEScss -i ./seeds/last_seeds.txt -n 2 -v 1Suggerimento:
- Mantieni sempre
cd final-projectprima dell'esecuzione, oppure passa path assoluti a-ce-t.
final-project/csv/: dataset e metriche per validazione.final-project/results/: output delle campagne (directory pronta all'uso).final-project/seeds/: semi RNG salvati/caricati per riproducibilita.final-project/matlab/: script per analisi numerica e confronto con modelli teorici.final-project/figures/: grafici e figure di supporto.
Report inclusi in final-project/:
EdoardoAcquarone_AndreaFulcheri_RelazioneSimMod2425.pdfProjectCPU.pdf
- Errore apertura file config/t-values: verifica la working directory corrente (
cd final-project) o usa path assoluti. - Comando
makenon trovato su Windows: usa WSL, Git Bash o MinGW (mingw32-make). - Errori di linking matematico: assicurati che il linker includa
-lm(gia presente nei Makefile).
Questo progetto e distribuito sotto licenza PolyForm Noncommercial 1.0.0.
Dettagli completi in LICENSE.