Introduzione alla simulazione Roberta Cocchieri [email protected] Dipartimento di Informatica Università degli Studi di Roma “La Sapienza” Definizione • Cos’è la simulazione? – Simulazione = imitazione delle operazioni eseguite nel tempo da un sistema o processo reale • Esempi: – Tamagotchi, simulatori di volo • A cosa serve? – – – – Analisi di sistemi ipotetici Analisi delle prestazioni Confronto di due sistemi Scelta del valore ottimale dei parametri Ambiti applicativi • Sistemi: – – – – – – – – elaborazione comunicazione trasporto militari sociali naturali economici produzione e automazione Alternative alla simulazione • La simulazione è una tecnica di valutazione • Le altre tecniche di valutazione: – Modellazione analitica – Misurazione • Da cosa dipende la scelta? – – – – Stadio in cui si trova il sistema Tempo Strumenti a disposizione Livello di accuratezza Meglio usare più tecniche! Metodologia • • • • • • • • Definire gli obiettivi Definire i servizi offerti dal sistema Scegliere le metriche (criteri di valutazione) Scegliere i parametri (valori che influenzano la performance) Scegliere la tecnica di valutazione Progettare gli esperimenti Analizzare e interpretare i risultati Presentare i risultati Modello e sistema • Modello = rappresentazione del sistema • A cosa serve? – Studiare il comportamento del sistema – Studiare le relazioni fra le parti del sistema • Un modello può omettere alcune caratteristiche del sistema • Il miglior modello è il più semplice che consente di ottenere le misure desiderate. Terminologia • Variabili: di input, di output, di stato • Evento • Modelli: – a tempo continuo/discreto – a stato continuo/discreto a eventi continui/discreti – statici/dinamici Simulazione trace-driven • Utilizza una traccia come input • Traccia = insieme di eventi in ordine temporale • Usata spesso per analizzare algoritmi di gestione di risorse • Permette di validare facilmente il modello • Richiede una modellazione dettagliata Simulazione a eventi discreti • Utilizza un modello a stati discreti del sistema • I valori del tempo possono essere sia continui che discreti • La simulazione ha diverse componenti: – – – – Scheduler di eventi Gestione del tempo Variabili di stato del sistema Routine associate agli eventi Come simulare • Linguaggi general-purpose – C, Java • Estensione di un linguaggio general-purpose – GASP per il FORTRAN • Linguaggi simulativi – SIMULA, SIMSCRIPT • Tool di simulazione – NS, OPNET OPNET • Opnet è un simulatore ad eventi discreti • L’interfaccia è grafica • È costituito da diversi editor – ogni editor corrisponde ad un diverso livello di astrazione (rete, nodo, componente del nodo, ..) – ogni editor si apre in una finestra distinta • Editor principali: – Project Editor, Node Editor, Process Editor Editor principali