SIMULAZIONE DISCRETA



Похожие документы
MODELLISTICA DI IMPIANTI E SISTEMI Syllabus e Testi di Riferimento Prof. Giuseppe Iazeolla

I sistemi operativi (prima parte) Agostino Lorenzi I sistemi operativi - Atlas

Giovanni A. Cignoni 1

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

Sistemi e modelli. Sistemi

Modelli e Metodi per la Simulazione (MMS)

Modulo Simulazione Parte 1. Simulazione ad Eventi Discreti: Concetti Base. Organizzazione del modulo

Dipartimento di Informatica Scienza e Ingegneria LAUREA MAGISTRALE IN INFORMATICA A.A. 2015/2016

La simulazione è l'imitazione di un processo o di un sistema reale per un

Gestione dello sviluppo software Modelli Base

Processi decisionali e modelli di simulazione

PIANO DI LAVORO. Programmazione Didattica per Competenze. Indirizzo Informatica e Telecomunicazioni. Articolazione Informatica DOCENTE:

MATERIALI PER LA DISCUSSIONE

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

Le aree dell informatica

Il Sistema Operativo

Linee di programmazione

SIMULAZIONE. Prof. Michele Colajanni. Corso di Impianti di Elaborazione Ingegneria Informatica Università di Modena e Reggio Emilia

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

Il calcolatore. Architettura di un calcolatore (Hardware)

Politecnico di Milano Dipartimento di Elettronica e Informazione Introduzione. Laboratorio di Reti di Telecomunicazione

Introduzione alla simulazione

Simulazione. D.E.I.S. Università di Bologna DEISNet

Progettazione curricolo verticale percorso formativo per Unità di Apprendimento (UDA)

Informatica. Progettazione ed implementazione di un tool per il supporto al debug nella pratica di sviluppo Test Driven

32 Laurea magistrale in Informatica Scienze

Prof. Rossella Cancelliere

BOX ONE, ERP PER SCATOLIFICI E CARTOTECNICHE. Metti le ali alla tua azienda!

Lab 1: Java Multithreading

Sistemi Operativi. Lezione 3 Processi e Thread

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

SIMULAZIONE A.A. 2016/2017

Laboratorio di Reti Locali e Geografiche

Modulo: Informatica. Chi sono. Obiettivi del corso. Preparazione all esame. Andrea Colitta

Cosa è un programma. Informatica di Base -- R.Gaeta 18

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Sistema Operativo (Software di base)

Introduzione al Calcolo Scientifico

Транскрипт:

SIMULAZIONE DISCRETA Prof. Michele Colajanni Corso di Impianti di Elaborazione Ingegneria Informatica Università di Modena e Reggio Emilia Origini della Simulazione Discreta Nata nell ambito della ricerca operativa e delle scienze gestionali verso la fine degli anni 50 Usata come ultima risorsa quando un sistema complesso non poteva essere analizzato in nessun altro modo Risultava estremamente dispendiosa soprattutto per i lunghissimi e costosi tempi di elaborazione che la caratterizzavano I report erano spesso difficili da interpretare e da diffondere 2

La Simulazione Discreta: ieri e oggi I linguaggi e i tooldi simulazione hanno ridotto molto lo sforzo necessario per la costruzione del simulatore. La diffusione delle workstation (e dei PC) hanno in pratica eliminato i costi di elaborazione connessi ai mainframe. I tooldi animazione grafica rendono molto più semplice il compito di verifica della correttezza di un simulatore. Le aree applicative continuano ad espandersi (es., sistemi di produzione, impianti chimici, sistemi distribuiti, trasporti, aziende di servizio, centri di elaborazione, ecc.). 3 La Simulazione Discreta: ieri e oggi (2) UNICO PROBLEMA La tecnologia simulativa è avanzata molto più rapidamente di quanto non abbia fatto l informazione al suo riguardo. 4

Allocazione dei tempi: IERI IERI B A C A) Costruzione simulatore: 50% B) Esperimenti: 10% C) Modello e Raccolta dati: 40% 5 Allocazione dei tempi: OGGI OGGI A B C A) Costruzione simulatore: 25% B) Modello e Raccolta dati: 40% C) Esperimenti: 35% 6

Caratteristiche del Simulazionista (1) Ingredienti per la costruzione di un buon Simulatore: Conoscenza dell area in cui vi è il problema da simulare (o stretta collaborazione con esperti dell area) Esperienza programmativa Nozioni di Statistica Tempo per la campagna di esperimenti 7 Caratteristiche del Simulazionista (2) A C B A) Statistica 25% B) Conoscenza del sistema, Modellistica 35-45% C) Esperienza programmativa 30-40% 8

Caratteristiche del Simulazionista (3) Che differenza c è tra Programmare Programmare un Simulatore? e Risposta: dal momento che la Simulazione è uno strumento utilizzato per studiare la dinamica dei sistemi, bisogna avere in più il feeling per processi che avanzano virtualmente in parallelo e che hanno interazioni dinamiche. Un buon riferimento è la programmazione concorrente in sistemi operativi multi-tasking. 9 I 4 passi principali del processo simulativo Formulare ed analizzare il problema Sviluppare il Modello del Sistema Raccolta e/o Stima dati per caratterizzare l uso del Modello Attività modellistica Workload analysis Implementazione del (kernel del) Simulatore Verifica e validazione del Simulatore Implementazione e run simulatore Progettare la campagna di esperimenti per valutare le alternative Analisi statistica dell output Analisi risultati Identificare la soluzione e presentare i risultati di supporto 10

Modelli di Simulazione Discreta (1) Modelli in cui lo stato è rappresentato da variabili interne che assumono soltanto valori discreti. Limitando l attenzione a: Formalismi logico-funzionali Modelli con variabile indipendente unica (tempo, di tipo continuo o discreto) 11 Modelli di Simulazione Discreta (2) Componenti del sistema da individuare RISORSE (forniscono servizio e nella maggior parte dei casi devono gestire l accodamento delle richieste) UTENTI (circolano nel sistema richiedendo servizio) La complessità della simulazione dipende dalla concorrenza tra gli utenti e dalla loro competizione nell acquisire le risorse. 12

Sistema per Modello Discreto (1) RISORSE:forniscono un servizio (possono essere a lungo o a breve termine) UTENTI: circolano nel sistema muovendosi da una risorsa all altra e richiedendo l esecuzione di un servizio. Esempi Sistema Risorse Utenti COMPUTER FABBRICA SUPERMERCATI TRASPORTO PUBBLICO CPU, Memoria Macchina utensile Banco salumi Linee autobus, treni, Metropolitana Job Pezzi Clienti Passeggeri 13 Esempio (modello aperto) - Sistema: 3 risorse, 1 sorgente, 1 pozzo - Ciascun utente, dopo l arrivo, richiede servizio alla risorsa A - Dopodiché, vi sono 3 possibilità: richiede un nuovo servizio alla risorsa A, oppure richiede servizio alla risorsa B o alla risorsa C -Dopo aver richiesto servizio alla risorsa B o C, l utente può decidere di uscire dal sistema, oppure può ritornare a richiedere servizio alla ris orsa C Sorgente esterna (arrivi) B Pozzo (uscite) A C 14

Esempio (modello chiuso) Sistema: 3 risorse, N utenti (per tutta la durata dell esperimento) [1] Ciascun utente richiede servizio alla risorsa A [2] Dopodiché, vi sono 3 possibilità: richiede un nuovo servizio alla risorsa A, oppure richiede servizio alla risorsa B o alla risorsa C [3] Dopo aver richiesto servizio alla risorsa B o C, l utente può tornare a richiedere servizio alla risorsa C oppure ritorna ad [1] A B C 15 Esempio (modello a capacità limitata) Sistema: 3 risorse, massimo M utenti nel sottosistema in esame [1] Se nel sistema vi sono già M utenti, l utente in arrivo attende in una coda esterna [2] Ciascun utente che entra nel sottositema a capacità limitata, richiede servizio alla risorsa A [3] Dopodiché, vi sono 3 possibilità: richiede un nuovo servizio alla risorsa A, oppure richiede servizio alla risorsa B o alla risorsa C [4] Dopo aver richiesto servizio alla risorsa B o C, l utente può tornare a richiedere servizio alla risorsa C oppure uscire dal sottosistema a capacità limitata, ovvero ritornare ad [1] Sorgente esterna (arrivi) Pozzo (uscite) Max M utenti A B C 16

I 4 passi principali del processo simulativo Formulare ed analizzare il problema Sviluppare il Modello del Sistema Raccolta e/o Stima dati per caratterizzare l uso del Modello Attività modellistica Workload analysis Implementazione del (kernel del) Simulatore Verifica e validazione del Simulatore Implementazione e run simulatore Progettare la campagna di esperimenti per valutare le alternative Analisi statistica dell output Analisi risultati Identificare la soluzione e presentare i risultati di supporto 17 Implementazione di un simulatore Scelta del Tipo di Simulatore Scelta del linguaggio Implementazione Debugging 18

Modelli di Simulazione Discreta(2) Tipologie di Simulatori Discreti Modelli a Sequenziamento di Eventi Modelli per Interazione di Processi Modelli a Scansione di Attività 19 Modello a Sequenziamento di eventi (1) L evoluzione nel tempo dei componenti del sistema (risorse e utenti) è scandita dall occorrenza dei relativi eventi. I principali componenti del Simulatore sono : Calendario degli Eventi Routine di Evento Clock (Avanzamento per Eventi) Sequenziatore o Scheduler 20

Modello a Sequenziamento di eventi (2) Il clock non è da confondere col tempo di esecuzione del programma il modello eseguibile (simulatore) costruito è un mondo virtuale che avanza in tempi indipendenti dal tempo di esecuzione reale. Problema: Quale unità di misura temporale scegliere? Tempi adimensionali, scelti in base alla granularità! Tutte le routine di gestione degli eventi possono aggiornare il Calendario, ma solo il Sequenziatore può leggerlo per attivare la successiva routine 21 Modello a Sequenziamento di eventi (3) L Evento è un cambiamento di stato dei componenti di un sistema. Inizializzazione modello Sequenziatore eventi Arrivo Fine Servizio1 Fine Servizio n Fine Simulazione Osservazione STOP 22

Modello a Scansione di attività (1) Il Modello descrive le attività intraprese dai vari componenti del sistema. Sequenziatore (Attività limitata) Inizializzazione del Modello Clock Clock+Dt Attività Sorgente Attività Servizio 1 Attività Servizio n Procedure fine Simulazione Routine di Osservazione STOP 23 Modello a Scansione di attività (2) ATTIVITA : successione di operazioni intraprese da un componente, che modificano lo stato. Viene gestito l evento la cui attività al tempo t+ t è conclusa. ASPETTO CRITICO: scelta di t t piccolo t grande Troppi cicli Vengono considerati come simultanei eventi che in realtà non lo sono 24

Modello per interazione di processi (1) Il comportamento del sistema è descritto da un insieme di processi eseguiti virtualmente in parallelo. Oggetti Sospesi Oggetto Attivo xxx Inizializzazione del Modello Routine di controllo Oggetti Passivi Processo sorgente Processo Utente m Processo Servizio n Processo di Osservazione Processo Utente 1 Processo Servizio 1 Processo di fine Simulazione STOP 25 Modello per interazione di processi (2) Esiste un processo per ogni componente del sistema: 1. Sorgente 2. Utenti 3. Risorse 4. Osservazione/i I processi possono trovarsi in 4 stati: 1. Attivo ( in esecuzione) 2. Sospeso ( pronto, ma non in esecuzione) 3. Passivo ( bloccato) 4. Terminato 26

Implementazione di un simulatore Scelta del Tipo di Simulatore Scelta del linguaggio Implementazione Debugging 27 LINGUAGGI DI SIMULAZIONE (DISCRETA) In fin dei conti, un linguaggio di SIMULAZIONE non è indispensabile per simulare. Un linguaggio di simulazione, tuttavia, semplifica la vita [Mitrani, 1986; Simulation techniques for discrete systems ]

Categorie di linguaggi per implementare un Simulatore Linguaggi general-purpose Linguaggi general-purpose + librerie Linguaggi specializzati per la Simulazione Tool (GPSS, SIMSCRIPT, SIMULA, MODSIM II, ) 29 Proprietà dei Linguaggi di Simulazione Linguaggio di Simulazione completo Proprietà algoritmico computazionali + Proprietà sistemistiche + Proprietà statistiche 30

Categorie per la caratterizzazione di un Linguaggio di Simulazione Discreto Manipolazione di Entità Creazione, manipolazione e distruzione di ENTITA ; inserimento ed estrazione di ENTITA da insiemi ordinati (code, pile, liste, ecc.) Manipolazione del tempo e degli eventi Gestione di un CLOCK e di un CALENDARIO DEGLI EVENTI Gestione di numeri pseudo casuali Generazione di numeri da diverse distribuzioni, generazione da uno o più stream Raccolta di statistiche (Rappresentazione grafica dell output) 31 Scelte del Corso di Impianti, 2003 Linguaggio C/C++ integrato con libreria CSIM (general purpose) Ambienti: Linux, Windows Libreria ns2 (special purpose reti) Ambienti: Linux, Unix 32