interfaccia utente per la creazione del modello ed eventuale visualizzazione dinamica dell'evoluzione del modello di simulazione
analisi di correttezza formale e correttezza funzionale del modello (passo finale della validazione del modello)
modularita' dei modelli di simulazione e riusabilita' (sottomodelli)
metodi e tecniche di simulazione implementate
definizione delle distribuzioni e caratterizzazione dei carichi, arrivi, servizi.
gestione dei dati di simulazione
analisi automatica dei dati di simulazione e indici di simulazione
gestione della fase transiente e dello stato stazionario.
visualizzazione di grafici degli indici di prestazione ottenuti
Gli strumenti di simulazione (tool) presentati sono
ns: Network Simulator e' uno strumento di simulazione orientato
alla simulazione di reti. Network Simulator, che attualmente vede lo sviluppo
della seconda versione, e' basato su un implementazione ad agenti (realizzati
con codice Tcl o C++). Un punto a favore di ns e' dato dal fatto
che e' possibile definire un'interfaccia grafica (nam=network animator)
che visualizza l'evoluzione del sistema durante la simulazione. Cio' rende
possibile valutare lo stato del sistema durante la simulazione, e rende
piu' semplice individuare le tappe dell'evoluzione del sistema, e le cause
di comportamenti non previsti (es. deadlock, livelock). E' possibile realizzare
simulazioni trace-driven, basate su sequenze di eventi predefiniti, attraverso
la definizione di script opportuni. Uno svantaggio (per ora) di questo strumento
e' dato dal fatto che il risultato della simulazione consiste unicamente
nella generazione di un file di eventi ordinato secondo la scala del tempo.
Da questo file dovranno essere estratti tutti gli indici di prestazione
che costituiscono oggetto di interesse, al costo di definire le opportune
funzioni di stima delle medie, varianze, distribuzioni, stima degli intervalli
di confidenza e valutazione delle fasi transienti. Risulta invece abbastanza
semplice mostrare graficamente l'evoluzione di stime o di parametri immediati
(es. numero attuale di processi in una coda) grazie alla possibilita' di
interazione con strumenti quali gnuplot o xgraph.
Testi consigliati:
- tutto il materiale disponibile in rete. (es. http://www-mash.cs.berkeley.edu/ns/index.html)
ModLine: rappresenta un tool commerciale per la simulazione, anche questo basato su reti di code (ma non solo), di livello potenzialmente superiore rispetto a Network Simulator. Modline fornisce un semplice insieme di strumenti grafici per creare modelli e permettere la simulazione di sistemi ad eventi discreti (DES). Modline permette inoltre di integrare altri strumenti di simulazione, consentendo un'interazione che si basa sulla definizione di un ambiente generale per la valutazione delle prestazioni, detto OML. Il Workbench grafico di Modline permette la gestione dei modelli, degli strumenti, delle simulazioni e dei risultati attraverso un'interfaccia completamente grafica. Esistono tre componenti di Modline che supportano le definizioni di OML, consentendo l'integrazione di Modline con altri strumenti di simulazione:
Experimenter: gestisce le esecuzioni di modelli di simulazione e permette di pianificare gli esperimenti di simulazione.
Analyzer: permette di analizzare, graficare e gestire i risultati delle simulazioni
Reporter: presenta i risultati delle simulazioni in modo sistematico
I componenti piu' propriamente di simulazione del tool Modline sono:
Qnet: un tool grafico per la modifica, la soluzione e l'animazione di reti di code
QNAP2: (Queueing Network Analysis Package 2) supporta la modellizzazione e la simulazione, con un paradigma di definizione Object Oriented. Puo' essere definito come un sistema completo per descrivere, gestire e risolvere modelli basati su reti di code. I modelli possono essere descritti attraverso un linguaggio di specifica, cosi' come le modalita' e le tecniche per la risoluzione del modello. I modelli definiti possono essere analizzati attraverso diverse tecniche: simulazione a eventi discreti (DES), analisi di catene di Markov, altri metodi di risoluzione analitica (convoluzione, analisi dei valori medi, ecc.) e metodi analitici approssimati (iterativi e euristici).
Qobjects: un insieme di strumenti per creare e gestire librerie di oggetti e tipi di oggetti.
x-Kernel: e' un tool che permette l'analisi di protocolli di rete, anche se non e' esattamente un ambiente di simulazione. Il vantaggio che viene dall'uso di x-kernel e' rappresentato principalmente dalla possibilita' di eseguire un'analisi di prestazioni o di funzionalita' di protocolli di rete su sistemi misti, definiti in parte attraverso emulazione e in parte attraverso l'uso di sistemi reali (es. la rete del dipartimento). Una vasta libreria di protocolli Standard e' disponibile, per cui e' possibile implementare direttamente un nuovo protocollo all'interno di uno stack di protocolli Standard, osservandone le interazioni e gli effetti sul sistema emulato o reale.
ResQ: si tratta di un tool orientato alla simulazione a tempo continuo basata su reti di code. Verranno presentati solo accenni significativi alle caratteristiche e al funzionamento del tool, in quanto ResQ non e' attualmente disponibile.
Alcuni esempi di sistemi complessi sui quali gli studenti del corso hanno acquisito esperienza, e che tipicamente sono oggetto di valutazione attraverso la simulazione, sono rappresentati dalle reti di comunicazione. In particolare la simulazione puo' permettere la valutazione dei protocolli che regolano la gestione delle reti, attraverso l'analisi degli indici di prestazione del sistema opportunamente modellato e caratterizzato. In particolare, le reti di comunicazione Wireless presentano interessanti aspetti di valutazione delle prestazioni, che si associano a un vasto dominio di problemi aperti. Ad esempio, sono valutabili i potenziali di un vasto insieme di nuove proposte e idee riguardanti la definizione dei protocolli che gestiscono le risorse, i nuovi servizi offerti e le esigenze degli utenti. Saranno illustrati esempi di architetture, algoritmi, protocolli e sistemi di comunicazione che presentano problemi di interesse, dal punto di vista dei protocolli e della loro ottimizzazione, al fine di illustrare come la simulazione possa essere usata con vantaggio nell'opportuna definizione dei sistemi di comunicazione. In seguito sara' concepito un progetto basato sulla realizzazione di modelli di simulazione per la valutazione di nuove proposte di algoritmi, protocolli, e ottimizzazione di protocolli esistenti, da selezionare liberamente in un ventaglio di proposte tutte estremamente attuali e "spendibili" nel contesto del mondo dell'informatica e delle telecomunicazioni. In questo senso gli studenti saranno incentivati a scegliere un problema, un sistema di riferimento, e potranno proporne la risoluzione, valutandone le prestazioni con l'ausilio della simulazione.
Alcuni esempi di sistemi e problemi che potrebbero essere illustrati a lezione, per cio' che riguarda la modellizzazione e la simulazione, sono:
Reti Wireless e mobilita': es. reti LAN IEEE 802.11
problematiche e algoritmi di routing ottimale dei pacchetti
algoritmi adattivi
prestazioni del sistema rispetto ai protocolli MAC, di rete e di trasporto
ottimizzazione del consumo di potenza in terminali mobili
Hidden terminals, Exposed Terminals
canali affetti da Error Ratio elevato o variabile
algoritmi e protocolli per garantire caratteristiche di Qualita' del Servizio
meccanismi distribuiti di priorita' nell'accesso alle risorse
ottimizzazione dell'utilizzo delle risorse
gestione della congestione nell'utilizzo distribuito di risorse condivise
Reti cellulari: es. GSM, GPRS, EDGE, UMTS
algoritmi di codifica dell'informazione
allocazione dinamica distribuita delle risorse
algoritmi di scheduling nell'allocazione di risorse
politiche di pricing
analisi di prestazioni e di carico del sistema
Altri esempi di sistemi di rete che possono essere studiati in tal senso investono
tutto lo scenario di protocolli di comunicazione (wireless e non) come Ethernet,
Bluetooth, HomeRF, WAP, sistemi ibridi Wired/Wireless, ecc. Proposte alternative
da parte degli studenti saranno prese in considerazione.
Ulteriori testi consigliati (lista incompleta):
- Cooper R.B. Introduction to QUEUEING THEORY. Third edition
- Tasaka S., Performance Analysis of Multiple Access Protocols, MIT Press
1986.
- Jain R., The art of computer system performance analysis
Riferimenti e materiale in rete (ovviamente questi sono solo alcuni dei riferimenti
che potrete trovare)
Maisie is a C-based simulation language that can be used for sequential and parallel execution of discrete-event simulation models. It can also be used as a parallel programming language. http://may.cs.ucla.edu/projects/maisie/
The PTOLEMY Simulation Tool is a platform which allows the modeling and simulation of communication networks, signal processing, and various other applications. It was written at the EECS department at U. C. Berkeley with governmental as well as industrial support. PTOLEMY combines different simulation environments, the so called domains to use the PTOLEMY terminology, like the discrete event and the data flow environments. Through the combination of these different domains the user can model and simulate heterogeneous systems. http://www-tkn.ee.tu-berlin.de/equipment/sim/ptolemy.html"
(8/11/99) Snapshot release 1.1.2 of the CMU Monarch extensions to the ns simulator that support the modeling of wireless multi-hop ad hoc networks. Provides an accurate radio propagation model, detailed simulation of the IEEE 802.11 DCF MAC protocol. Now with implementations of four routing protocols: DSR, DSDV, TORA/IMEP and AODV! Also includes a visualization tool for making scenario files and playing back traces of a simulation. http://www.monarch.cs.cmu.edu/
U.S. Department of Commerce NTIA/ITS Institute for Telecommunication Sciences Wireless Modeling and Simulation http://elbert.its.bldrdoc.gov/wireless.html
Research Areas of WAM Lab http://www.cs.ucla.edu/NRL/wireless/index.html
Tutorial for the network simulator "ns" http://irtf.cs.berkeley.edu/ns/tutorial/