Struttura della Simulazione
Master
File
- raccoglie stats
- ogni secondo stampa lo stato di occupazione delle celle
- alla fine stampa
- n viaggi
- mappa
- processo taxi
- maggior strada percorsa
- viaggio piú lungo
- servito il maggior numero di richieste
Generator
File
- Gestisce Configurazione
- Genera Mappa
- una matrice di struct
cell
- (x,y)
- type - char
- capacity - int
- SOCAPMIN <= capacity <= SOCAPMAX
- traffic
- nvisite - int
- incrementato da ogni taxi di passaggio
- Genera SOTAXI processi figli
- execv taxi.c
- indica uno spawn casuale
- non HOLE
- una cella che non abbia ecceduto la sua CAPACITY
- Predispone Msg Queue
- Genera Richieste
- Inserisce Richieste
- Una volta passato SODURATION
- termina tutti i processi
- SIGINT a master
- che stampa le statistiche prima di terminare
Taxi(s)
File
- Si sposta nella Source libera piú vicina
- una volta scelta aumenta subito il suo Traffic
- in modo che i taxi non si rubino il posto a vicenda
- se non ne trova si sposta di una cella verso la piú vicina source e riprova
Config
File
- SOTAXI
- SOSOURCE
- SOHOLES
- SOCAPMIN
- SOCAPMAX
- Capacitá MIN e MAX di ogni cella
- ogni cella ha capacitá casuale
- SOTIMENSECMIN
- SOTIMENSECMAX
- MIN e MAX tempo di attraversamento di ogni cella
- SOTIMEOUT
- ogni processo taxi si chiude dopo questo tempo di inattivitá
- SODURATION
- dopo questo tempo il processo Generator invia SIGINT ai figli
- SOWIDTH
- SOHEIGHT