Introduzione alla simulazione Obbiettivo simulazione discreta per lanalisi
Introduzione alla simulazione Obbiettivo: simulazione discreta per l’analisi quantitativa della Qo. S di sistemi costruzione di modelli di simulazione soluzione della simulazione: generazione e analisi della storia degli eventi del modello Studio, analisi del sistema al variare delle caratteristiche operative Sistema collezione di elementi (componenti, entità) interdipendenti e che interagiscono per raggiungere uno specifico obbiettivo S. Balsamo - A. A. 2006 -2007 Simulazione
Sistemi e modelli Sistema Analisi impiego Creazione Formalizzazione Modello Creazione di un modello : rappresentazione del sistema Obiettivo: studio del comportamento del sistema e delle relazione fra le sue componenti. Processo di creazione ed uso del modello 1. Definizione 2. Parametrizzazione 3. Valutazione S. Balsamo - A. A. 2006 -2007 Simulazione
Obbietivi • Studio e valutazione delle caratteristiche del sistema (prestazioni, affidabilità) • Fase di progetto e di implementazione – analisi di sistemi ipotetici – confronto tra due o più sistemi • Fase di dimensionamento e acquisizione – ottimizzazione dei parametri – identificazione dei punti critici (bottlenecks) • Fase di evoluzione della configurazione (struttura) e del carico – capacity planning – predizione delle prestazioni del sistema nel futuro Studio del comportamento del sistema e sua valutazione in termini di costo/prestazioni e di affidabilità durante tutto il ciclo di vita del sistema S. Balsamo - A. A. 2006 -2007 Simulazione
Motivazioni • Vantaggi della simulazione vs misurazione – Studio di sistemi non esistenti – Stime non misurabili sul sistema reale – Non interferisce con il sistema per la misurazione – Accuratezza – Ripetibilità dell’esperimento di analisi – Analisi di sistemi in condizioni estreme (eventi rari, condizioni rischiose) • Vantaggi della simulazione vs modelli analitici – Generalità delle ipotesi S. Balsamo - A. A. 2006 -2007 Simulazione
Vantaggi e limiti della simulazione • Vantaggi – Studio preventivo e test per sistemi non esistenti – Stime non misurabili sul sistema reale – Espansione o compressione del tempo simulato – Comprensione del sistema e di relazione causa-effetto di eventi – Identificazione di problemi – Identificazione di requisiti – Ripetibilità – Generalità di applicazione • Limiti – Tempo di sviluppo e messa a punto del modello – Tempo di sperimentazione – Interpretazione dei risultati complessa S. Balsamo - A. A. 2006 -2007 Simulazione
Introduzione alla simulazione • Strumenti – Simulatori, linguaggi di simulazione – Ambienti di simulazione • Concetti – Tempo – Variabili di stato – Eventi – Attività e ritardi – Processi – Entità e attributi – Risorse – Gestione di liste • Modelli di simulazione a eventi discreti – Sistema <-> Modello – Astrazione del sistema – Possibilie descrizione procedurale delle variabili e delle regole di trasformazione S. Balsamo - A. A. 2006 -2007 Simulazione
Introduzione alla simulazione • Specifica del modello di simulazione – Semplicità – Accuratezza – Aderenza alla realtà – Approssimazione • Simulazione digitale : basata su elaborazione digitale • Programma di simulazione : produce una storia degli stati del modello da cui si ottengono informazioni relative all'evoluzione temporale del sistema • Variabili di stato : esogene / endogene • Sistema – aperto / chiuso – continuo / discreto – stocastico / deterministico • Storia degli stati : cambiamenti di stato : continui / discreti • Simulazione continua / discreta S. Balsamo - A. A. 2006 -2007 Simulazione
Tipi di simulazione • Emulazione – simulazione che coinvolge componenti del sistema hw e firmware • es. emulatore di terminale hw, emulatore di processore: emula un instruction set di un altro processore • simulazione Monte. Carlo – non esiste o non è rilevante l’asse del tempo – utilizzata per modellare fenomeni che non cambiano nel tempo – richiede generazione di numeri pseudo-casuali – anche valutazione di espressioni non probabilistiche • es. calcolo di integrali, calcolo di Pigreco, ecc. S. Balsamo - A. A. 2006 -2007 Simulazione
Tipi di simulazione • Simulazione Trace-driven – simulazione basata su una sequenza di eventi ordinati per tempo registrati dal sistema reale (traccia) – vantaggi: • • • credibile: non basata su ipotesi e distribuzioni di input semplice validazione nessuna assunzione sul workload e correlazione possibile fare una buona analisi di sensitività minori variabilità (varianza minore) che permette una stima più accurata e/o veloce • il confronto tra sistemi è certamente equo (fairness) S. Balsamo - A. A. 2006 -2007 Simulazione
Tipi di simulazione • Simulazione Trace-driven – svantaggi • complessità del modello è maggiore (di solito) • rappresentatività: difficoltà di ricavare una traccia rappresentativa dei carichi possibili (soprattutto per sistemi diversi e molto dinamici) • lunghezza: la traccia è lungo e legato alla situazione in cui è registrato, problema della scelta della parte di traccia da utilizzare • convalida: occorrono molte tracce diverse per motivare e dimostrare i risultati • comportamenti transienti devono essere registrati nella traccia • tracce diverse per ogni diverso carico (workload) S. Balsamo - A. A. 2006 -2007 Simulazione
Tipi di simulazione • Simulazione ad eventi discreti (DES) • simulazione che usa un modello del sistema a tempo discreto • opposto di simulazione a eventi continui • può essere basata su stato continuo o discreto • le variabili di stato cambiano solo in corrispondenza ad eventi discreti, determinati a loro volta da attività e ritardi S. Balsamo - A. A. 2006 -2007 Simulazione
Tempo, stato • Simulazione discreta – il cambiamento di valore delle variabili di stato avviene ad istanti discreti – sistemi stocastici : una o più variabili di stato è stocastica (varia con casualità) • Modello – a tempo continuo/discreto – a stato continuo/discreto • Analisi del comportamento – stazionario: per sistemi stabili – transiente: variazioni continue, instabilità => simulazione a termine • Variabili di stato – Descrizione dello stato del sistema al tempo t, al livello di astrazione fissato – Sono definite da strutture dati del modello – L’evoluzione del modello (la simulazione) può essere fermata e ripresa tramite le variabili di stato S. Balsamo - A. A. 2006 -2007 Simulazione
Eventi, Attività • Evento – Cambiamento di stato – È associato ad un tempo di occorrenza (istante di tempo) – Eventi interni / esterni -> relativo a variabili endogene / esogene – Esempio: sistema di elaborazione: inizio di un servizio di elaborazione, arrivo di un job dall’esterno • Attività – Collezione di operazioni che trasformano lo stato di una componente – Caratterizzata da una durata di tempo – La durata può essere rappresentata da una variabile casuale – La durata può essere indefinita, dipendente dalla evoluzione del sistema (delay) – Compresa fra due eventi: inizio attività e fine attività • Esempio: eventi: arrivo job, completamento dell’elaborazione di un job attività t_arrivo S. Balsamo - A. A. 2006 -2007 tempo t_completamento Simulazione
Processi, Tempo • Processi – Sequenza di eventi ordinati nel tempo • Tempo – reale: tempo del sistema da simulare – simulato: tempo rappresentato nel modello • clock : variabile del modello il cui valore è il tempo simulato corrente – di esecuzione: tempo di elaborazione del programma di simulazione Nota: il tempo di esecuzione dipende dalle componenti del modello e dalla complessità dei cambiamenti di stato rappresentati, e non dalla scala del tempo simulato Possibile contrazione / espansione temporale S. Balsamo - A. A. 2006 -2007 Simulazione
Entità, attributi, risorse • Entità - elementi che eseguono transazioni – Oggetti definiti nel modello – Determinano l’accadere di eventi o reagiscono ad eventi – Possono competere per l’uso di risorse o essere accodato nelle code di attesa • Attributi - delle entità – valori locali alle entità • Esempio: – tempo di arrivo di un job, – domanda di richiesta di servizio • Risorse – entità che forniscono servizi passivi o attivi (server) ad entità dinamiche (che richiedono risorse passive o un server) – Risorse richieste possono provocare code di entità in attesa – Possono fornire servizi in parallelo per servire diverse entità concorrentemente S. Balsamo - A. A. 2006 -2007 Simulazione
Liste, run di simulazione • Liste – Strutture dati usate per implementare code – Possono essere ordinate in base a valori di specifici attributi – Algorithmi di scheduling (discipline di servizio o di coda) • Simulazione discreta – Evoluzione delle variabili di stato => storia degli stati • Esperimento di simulazione – Esecuzione di un insieme di run o repliche – Uso di generazione di numeri pseudo-casuali per rappresentare la stocasticità – Da ogni run si ricavano delle osservazioni possibilmente i. i. d. indipendenti e identicamente distribuite – Dalle osservazioni si ricavano le stime delle grandezze di interesse S. Balsamo - A. A. 2006 -2007 Simulazione
Run di simulazione • Run di simulazione – Esecuzione del modello di simulazione – Uso di un meccanismo di avanzamento del tempo simulato (clock T) • Un modo per eseguire la simulazione: ciclicamente, fino alla fine della simulazione – avanza il tempo di simulazione T – esegue tutti gli eventi o i processi del tempo T tempo Eventi e tempi di occorrenza S. Balsamo - A. A. 2006 -2007 Simulazione
Un semplice schema di simulazione Inizializzazione Fase di aggiornamento e movimento delle entità Aggiornamento del clock NO Fine simulazione? SÌ Fase di rapporto S. Balsamo - A. A. 2006 -2007 Simulazione
Aanzamento del tempo di simulazione 1/2 • Clock: variabile che rappresenta l’evoluzione temporale • Meccanismi di avanzamento del tempo di simulazione • Per eventi • Per intervalli fissi • Avanzamento del tempo per intervalli fissi – il tempo di clock, t, è incrementato di una quantità fissa (es. 1 min, 1 sec. , 1 µs) – si esamina il sistema per determinare gli eventi che devono aver luogo (ovvero tutti gli eventi con tempo di occorenza ti (t, t+ ]) per i quali si effettuano le necessarie trasformazioni – Scelta dell'incremento – Eventi con diversi tempi di occorrenza possono essere trattati come eventi simultanei – Possibili intervalli vuoti S. Balsamo - A. A. 2006 -2007 Simulazione
Aanzamento del tempo di simulazione • Avanzamento del tempo per eventi – Si incrementa il clock fino al tempo di occorrenza del prossimo (primo) evento – t t 1 – Incrementi non regolari – Eventi simultanei solo se hanno ugual tempo di occorrenza – Si evitano i tempi di inattività del sistema – Meccanismo più semplice e maggiormente utilizzato. S. Balsamo - A. A. 2006 -2007 Simulazione 1/2
Componenti di un simulatore • Routine di inizializzazione – Definizione dello stato iniziale • Parametri, variabili di stato, generatori di numeri pseudo casuali, … • Routine – di gestione di eventi – di scheduling di processi • Fase di rapporto – Calcolo di stime ed elaborazione delle osservazioni raccolte – Eseguita al termine della simulazione • Routine di traccia – Procedure per la notifica di eventi o per la valutazione di stime a run-time • Gestione dinamica della memoria – Garbage collection S. Balsamo - A. A. 2006 -2007 Simulazione
Specifica del modello di simulazione • Modello di simulazione – Definito da • processo stocastico da studiare • parametri e caratteristiche operative • eventi • variabili di stato dipendenti dagli eventi • variabili endogene e regole di generazione • regole di trasformazione di stato • regole di trasformazione delle variabili endogene • Implementazione del modello – Traduzione o codifica del modello in un programma di simulazione – Modello operazionale – Scelta della tecnica o schema di simulazione – Scelta e definizione di strutture dati, algoritmi di gestione, funzioni e procedure di supporto • Verifica e convalida S. Balsamo - A. A. 2006 -2007 Simulazione
Schemi del modello di simulazione • Strutture per modelli di simulazione – Simulazione per sequenziamento di eventi – Simulazione per scansione di attività – Simulazione per interazione di processi – Simulazione e ‘tre fasi’ S. Balsamo - A. A. 2006 -2007 Simulazione
Simulazione per sequenziamento di eventi • Evento -> procedura • Si basa su un insieme di procedure (sottoprogrammi), ognuna associata ad un evento, che realizzano le trasformazioni di stato relative • Schema del programma di controllo • Il programma termina quando viene raggiunto il tempo di fine simulazione, stabilito con un criterio opportuno Il numero e la struttura delle procedure dipende dagli eventi considerati nel modello e dall'approccio seguito S. Balsamo - A. A. 2006 -2007 Simulazione
Simulazione interazione di processi • Entità -> processo • Comportamento del sistema : insieme di processi (programmi in esecuzione quasi parallela) • Ogni processo viene eseguito ciclicamente – esempio: sistema di elaborazione uniprocessore con periferiche • un processo per ogni job nel sistema, • un processo per la CPU, uno per ogni periferica – consideriamo il processo CPU : –centro di servizio; assumiamo che i job in coda per ottenere l'elaborazione (il servizio) siano gestiti secondo la disciplina First In First Out • il servizio è realizzato valutandone il ritardo introdotto S. Balsamo - A. A. 2006 -2007 Simulazione
Simulazione interazione di processi • il processo ripete ciclicamente fino all'evento di fine simulazione i seguenti passi 1 - Esamina la coda, se è vuota vai al passo 5 2 - Preleva un utente dalla coda 3 - Esegui il servizio* per il job selezionato 4 - Vai al passo 1 5 - Attendi l'arrivo del prossimo utente; al suo arrivo vai al passo 1 * servizio -> ritardo • processo -> algoritmo Il passo 4 non viene eseguito finchè il clock non è avanzato di un tempo pari al tempo di servizio richiesto sospensione temporanea del processo • Il passo 4 viene eseguito dopo il ritardo corrispondente al servizio il passo 4 è un punto di riattivazione del processo • Il passo 5 differisce dal passo 4: la durata del tempo di sospensione non è prevedibile la riattivazione avviene solo tramite un altro processo il processo è allora in uno stato passivo (bloccato) S. Balsamo - A. A. 2006 -2007 Simulazione
Simulazione interazione di processi • Un processo può essere • attivo • sospeso • passivo • nella simulazione per interazione fra processi una routine gestisce i cambiamenti di stato dei processi • Una routine salva lo stato del processo se questo viene sospeso o bloccato • Due liste di processi: • • {processi sospesi} {processi bloccati} (oggetti sospesi) (oggetti passivi) • La routine di controllo riattiva un processo al verificarsi della condizione di riattivazione. • Un oggetto di tipo servente può essere • attivo : sta eseguendo le azioni specificate nella definizione • sospeso : è caratterizzato da un tempo di riattivazione • passivo : non è attivo e il tempo di riattivazione dipende da un altro oggetto • terminato : ha terminato tutte le azioni S. Balsamo - A. A. 2006 -2007 Simulazione
Simulazione interazione di processi S. Balsamo - A. A. 2006 -2007 Simulazione
Simulazione interazione di processi • Lista dei processi sospesi: insieme dei processi in attesa del termine del periodo di sospensione autodeterminato, ordinati cronologicamente • Il primo processo è un oggetto attivo, corrispondente al processo attualmente in esecuzione • Lista degli oggetti passivi: insieme dei processi in attesa di essere riattivati da altri processi al verificarsi delle condizioni di riattivazione. • es. : processo CPU bloccato per coda vuota; condizione di riattivazione: arrivo di un utente, generato dal processo arrivi Simulazione per interazione fra processi: approccio naturale alla simulazione Realizzazione semplificata dall'uso di linguaggi appropriati, orientati ad oggetti, forniti di primitive per la gestione di oggetti, di liste, dell'avanzamento del tempo simulato. S. Balsamo - A. A. 2006 -2007 Simulazione
Simulazione per scansione di attività Attività procedura (segmento di programma) Si basa sulla descrizione delle attività delle componenti del modello Se è applicato il meccanismo di avanzamento per intervalli fissi , ad ogni avanzamento vengono esaminate tutte le attività per stabilire le condizioni di inizio / fine attività. Le relative procedure aggiornano lo stato delle entità Si può applicare un meccanismo di avanzamento del tempo distribuito nelle procedure delle attività (analogo all'avanzamento per eventi) S. Balsamo - A. A. 2006 -2007 Simulazione
Pianificazione di uno studio di simulazione 1 - Formulazione del problema 2 - Definizione degli obbiettivi 3 -Astrazione del modello 4 -Raccolta dei dati 5 - Codifica del modello No 6 -Verifica No 7 -Validazione No 8 - Progetto degli esperimenti di simulazione 9 - Esecuzione e analisi dei dati - Accuratezza ? 10 -Documentazione e presentazione dei dati S. Balsamo - A. A. 2006 -2007 Simulazione
Pianificazione della simulazione - 1 1. Formulazione del problema • Definire e verificare la corretta e completa formulazione del problema attraverso un dialogo tra cliente e analista • Definire le assunzioni delle specifiche e delle definizioni del sistema adottate • Perché? S. Balsamo - A. A. 2006 -2007 Simulazione
Pianificazione della simulazione - 2 2 Definizione degli obiettivi • Preparazione di una proposta • Obiettivi: cosa? • Definire le risposte attese dalla simulazione • Definire gli scenari oggetto di indagine • Definire i tempi necessari • Definire le risorse necessarie • Definire i costi • Definire le fasi dell’analisi S. Balsamo - A. A. 2006 -2007 Simulazione
Pianificazione della simulazione - 3 3 Astrazione del modello concettuale – Relazioni logiche, matematiche e causali delle componenti e strutture del sistema • Modello: livello di astrazione • componenti, attributi, caratteristiche funzionali relazioni • complessità strutturale, solubilità 4 Metodologia Top-Down – Partire dalle cose semplici ed estendere il modello fino a raggiungere il grado di complessità descrittiva necessario – La complessità descrittiva non necessaria all’analisi aumenta rischio di errori, costi e tempi – Coinvolgimento del “cliente” nella costruzione del modello S. Balsamo - A. A. 2006 -2007 Simulazione
Pianificazione della simulazione - 4 4 Raccolta dei dati • • • caratterizzazione del carico (workload characterization) analisi e indagine sui dati che caratterizzano il modello le discipline di accesso e servizio i tempi medi di permanenza, attesa e servizio le distribuzioni di probabilità tecniche di misurazione S. Balsamo - A. A. 2006 -2007 Simulazione
Pianificazione della simulazione - 5 5 Codifica del modello • Il modello concettuale ottenuto viene codificato in una forma interpretabile dal calcolatore, ottenendo un modello operazionale • Tecniche di codifica – approccio object-oriented – simulazione distribuita – ambienti di simulazione S. Balsamo - A. A. 2006 -2007 Simulazione
Pianificazione della simulazione - 6 -7 Verifica e validazione del modello – verifica della correttezza del modello operazionale (soluzione) del modello – convalida del modello concettuale come adeguata rappresentazione del sistema – convalida della adeguatezza di: modello, obbiettivi, risultati possibile iterazione ai punti (2), 3, 4 o 5 con relative modifiche S. Balsamo - A. A. 2006 -2007 Simulazione
Pianificazione della simulazione - 8 -9 8 Progetto degli esperimenti di simulazione – – lunghezza della simulazione numero di prove simulazione a termine o stazionaria esperimenti pilota 9 Esecuzione e analisi dei dati – – scelta del metodo di analisi intervalli di confidenza e stimatori - feedback a 8 interpretazione dei risultati analisi comparativa S. Balsamo - A. A. 2006 -2007 Simulazione
Pianificazione della simulazione - 10 10 Documentazione – – – obbiettivi assunzioni modello tecniche di analisi dei risultati degli esperimenti Analisi di sensitività – – scelta del metodo di analisi intervalli di confidenza e stimatori - feedback a 8 interpretazione dei risultati analisi comparativa S. Balsamo - A. A. 2006 -2007 Simulazione
- Slides: 39