2. Simulazione discreta: approcci alla simulazione



Documenti analoghi
2. Simulazione discreta: approcci alla simulazione

Capitolo 2. Simulazione discreta. 2.1 Il sistema da modellare

Note di Simulazione. Vincenzo Ambriola, Giorgio Gallo. Dipartimento di Informatica Università di Pisa

2. Simulazione discreta: L uso di UML per la modellazione

Ingegneria del Software T

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P P P P P P < P 1, >

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

3. Simulazione discreta: L uso di UML per la modellazione

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Database 3 affitto veicoli. Testo del quesito

GESTIONE della BASE di DATI

Modellazione del flusso di attività a partire da testo in linguaggio naturale: il caso di una compagnia di assicurazioni

NOTA. La presente traduzione non sostituisce in alcun modo il regolamento originale del gioco.

PROGETTAZIONE CONCETTUALE

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Esame di INFORMATICA

MODULO 5 ACCESS Basi di dati. Lezione 4

Prova scritta del corso di Basi di dati attive 17 Dicembre Agenzia

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

MAPPE DI KARNAUGH. Nei capitoli precedenti si è visto che è possibile associare un circuito elettronico o elettrico ad una funzione logica.

Gestione del processore e dei processi

H1 Hrms Gestione eventi/scadenze automatiche

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

LA STATISTICA si interessa del rilevamento, dell elaborazione e dello studio dei dati; studia ciò che accade o come è fatto un gruppo numeroso di

I modelli di qualità come spinta allo sviluppo

EASYGEST COME FATTURARE I DOCUMENTI DI TRASPORTO

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

MUDE Piemonte. Modalità operative generazione Procura speciale


Progettazione concettuale

La memoria centrale (RAM)

La propagazione delle onde luminose può essere studiata per mezzo delle equazioni di Maxwell. Tuttavia, nella maggior parte dei casi è possibile

Verifica della correttezza formale del numero di partita IVA

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

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità

FINE ANNO BOLLE / FATTURE PER E/SATTO

Versione 7.0 Taglie e Colori. Negozio Facile

TECNICHE DI SIMULAZIONE

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

GLI APPARATI PER L INTERCONNESSIONE DI RETI LOCALI 1. Il Repeater 2. L Hub 2. Il Bridge 4. Lo Switch 4. Router 6

Organizzazione degli archivi

Metodi e Modelli Matematici di Probabilità per la Gestione

Piano di gestione della qualità

Cosa dobbiamo già conoscere?

Gestione Turni. Introduzione

DFD DISPENSA DEL CORSO DI SISTEMI INFORMATIVI UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA

GESTIONE AVANZATA DEI MATERIALI

Sistema operativo: Gestione dei processi

Traccia delle soluzioni

Modello relazionale. ing. Alfredo Cozzi 1

Realizzazione di una classe con un associazione

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

2 - Modifica Annulla ANNULLA TOPOGRAFICO ANNULLA TOPOGRAFICO MULTIPLO FIGURA 2.1

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

Manuale Gestore. STWS Web Energy Control - Servizio di telelettura sul WEB

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Progettaz. e sviluppo Data Base

disponibili nel pacchetto software.

Inferenza statistica. Statistica medica 1

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Pronto Esecuzione Attesa Terminazione

MANUALE ESSE3 Gestione Registro delle lezioni

CitySoftware PROTOCOLLO. Info-Mark srl

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2011

Ottimizzazione Multi Obiettivo

Gestione Automatizzata di una Lista Nozze

Liberare la memoria allocata dinamicamente.

Le Basi di Dati. Le Basi di Dati

DATABASE. nozioni di base

Appunti sulla Macchina di Turing. Macchina di Turing

CONTROLLO DI GESTIONE DELLO STUDIO

Stampe in rete Implementazione corretta

Direzione Programmazione Sanitaria. Scarico Dati Sanità. Manuale Utente. Versione 1.0.0

Esercizio data base "Biblioteca"

CAMBIO DI GESTIONE DEGLI ESEMPLARI RICHIESTI DALLE BIBLIOTECHE

Introduzione al MATLAB c Parte 2

Introduzione agli Abstract Data Type (ADT)

Note per generazione file.txt per invio trimestrale V.P. all AGENZIA DELLE ENTRATE

La rilevazione delle imposte sul reddito (Aggiornata al 10/10/2010)

Automazione Industriale (scheduling+mms) scheduling+mms.

Introduzione a Dev-C++

Ata_NiAg02. Modulo Gestione Agenti

Creare diagrammi di Gantt con Visio 2003

Nozione di algoritmo. Gabriella Trucco

THS: un idea semplice, per un lavoro complesso.

Il gestionale per le aziende in movimento

La manutenzione come elemento di garanzia della sicurezza di macchine e impianti

Guida all uso di Java Diagrammi ER

Cos è la UNI EN ISO 9001?

Calcolatori Elettronici. La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo

LA SCHEDA CONTABILE di Roberto Gabrielli

Pagina 2 di 14. Indice

La memoria - generalità

Transcript:

Anno accademico 2007/08

Elementi di un programma di simulazione Controllore Tempo di simulazione Generatore dei dati di input Entità Eventi Attività Stati Processi

Simulazione per eventi: le classi L approccio basato sugli eventi permette di costruire programmi di simulazione molto compatti ed efficienti, ma anche proprio per questo più costosi dal punto di vista della manutenzione e degli aggiornamenti. Agenda Lunghezza: Int = 0 Inserisci(e: Evento) Scandisci(t: Time): Time Esegui(t: Time) Controllore Tc: Time = 0 cal: Agenda Esegui(end: Time) * Evento t: Time EseguiAzione() Evento1 t: Time Evento1 Evento1 Evento1 EseguiAzione() verificacondizione():bool EseguiAzione() EseguiAzione() verificacondizione():bool EseguiAzione() Figure: Diagramma delle classi in un simulatore per eventi

Simulazione per eventi: il controllore Tc = cal.scandisci(end) [cal.lunghezza = 0 OR Tc = end] [Tc < end] cal.esegui(tc)

Simulazione per eventi: gli eventi nel caso del botteghino teatrale ArrivaCp. Se L impiegato è occupato il cliente viene inserito in Q p, altrimenti inizia il servizio, e sia l impiegato che il cliente passano allo stato di servizio. ArrivaCt. Se L impiegato è occupato, oppure è arrivato contemporaneamente un cliente fisico, il cliente viene inserito in Q t. Altrimenti, inizia il servizio, e sia l impiegato che il cliente passano allo stato di servizio. FineServizio. Se la coda Q p non è vuota, l impiegato rimane nello stato di servizio ed estrae il primo cliente da Q p, altrimenti estrae il primo cliente da Q t, se tale coda non è vuota. In entrambi i casi, il cliente estratto passa allo stato di servizio,e viene programmato un nuovo evento FineServizio. Se entrambe le code sono vuote, l impiegato si mette in attesa, cambiando così di stato. Il cliente appena servito esce dal sistema.

Simulazione per eventi: una variante Il problema principale nella modellazione per eventi nasce dal fatto che le operazioni svolte da un singolo evento possono essere molto complesse e si propagano coinvolgendo diverse entità. Questo rende alta la possibilità di errori, rende difficile il mantenimento e l aggiornamento del modello. Una possibile variante è quella di distribuire le operazioni fra le diverse entità. Ognuna di esse mantiene l informazione sullo stato in cui si trova (punto nel suo ciclo degli stati) e sul tipo di operazioni che deve svolgere in corrispondenza a ciascuno stato ed a ciascun evento. Allora ogni evento contiene fra le sue informazioni la lista delle entità attive, cioè che sono coinvolte quando esso viene attivato dal controllore. E l operazione eseguita dall evento è solo quella di attivare le entità coinvolte. In questo modo le operazioni sono più parcellizate e distribuite e quindi il programma risulta più facile da controllare ed aggiornare.

Simulazione per attività In questo approccio, a partire dal diagramma degli stati, si decompongono le attività svolte nel sistema in attività elementari. Queste attività corrispondono agli eventi, cioè a quei fatti o azioni che portano ai cambiamenti di stato del sistema e che quindi danno origine alle transizioni. Il ruolo del controllore sarà quello di gestire la lista delle attività individuate in modo che vengano eseguite. Ogni attività è caratterizzata dalla condizione che la fa avvenire e dalle azioni che vengono corrispondentemente fatte, e viene rappresentato per mezzo di una tabella in cui sono riportate le informazioni rilevanti.

Simulazione per attività: le classi ListaAttività L: Attività[n] Scandisci(t: Time): Time Esegui(t: Time) Controllore curt: Time = 0 lista: ListaAttività Esegui(end: Time) Attività t:time condizione: Logic Formula EseguiAzione() Attività1 t: Time Evento1 Condizione: Logic Evento1 Formula Evento1 EseguiAzione() EseguiAzione() verificacondizione():bool EseguiAzione() verificacondizione():bool EseguiAzione()

Simulazione per attività: il controllore Tc = lista.scandisci(end) [Tc = end] [Tc < end] done = lista.esegui(tc) [done = vero] [done = falso]

Simulazione per attività: il caso del botteghino teatrale (1) Le attività: a[1] Inizio servizio allo sportello a[2] Inizio servizio al telefono a[3] Fine servizio allo sportello a[4] Fine servizio al telefono a[5] Arrivo cliente allo sportello a[6] Arrivo cliente al telefono

Simulazione per attività: il caso del botteghino teatrale (2) Attività a[1]: Inizio servizio allo sportello Attributi - I.Libero = vero & Qp.lunghezza > 0 Azioni a[3].t := curt + Qp.Estrai().t; I.Libero := falso

Simulazione per attività: il caso del botteghino teatrale (3) Attività a[2]: Inizio servizio al telefono Attributi - I.Libero = vero & Qp.lunghezza = 0 & Qt.lunghezza > 0 Azioni a[4].t := curt + Qt.Estrai().t; I.Libero := falso

Simulazione per attività: il caso del botteghino teatrale (4) Attività a[3]/a[4]: Fine servizio Attributi t vero Azioni I.Libero := vero

Simulazione per attività: il caso del botteghino teatrale (5) Attività Attributi Azioni a[5]: Arrivo cliente allo sportello t vero Qp.Inserisci(nuovoCliente(rndp1()) a[5].t := curt + rndp2()

Simulazione per attività: il caso del botteghino teatrale (6) Attività Attributi Azioni a[6]: Arrivo cliente al telefono t vero Qp.Inserisci(nuovoCliente(rndp1()) a[6].t := curt + rndp2()

Simulazione per processi In questo approccio tutti gli eventi del ciclo degli stati di una entità, con le relative operazioni, vengono vengono accorpati in una sequenza detta processo. Un processo è sostanzialmente la sequenza delle operazioni descritte dal diagramma degli stati. Un processo può essere attivo oppure in attesa. In quest ultimo caso, si può trattare di una attesa condizionata, quando la ripresa dell attività del processo dipende dal realizzarsi di condizioni esterne, oppure di un attesa programmata, quando il tempo in cui il processo verrà riattivato è predefinito.

Simulazione per processi: il botteghino teatrale(1) 1 Arrivo del cliente C quando il tempo di simulazione è uguale al suo tempo di arrivo, cioè curt = P(C).t. 2 Calcolo del tempo di arrivo, P(C ).t del cliente successivo, C ; 3 Generazione dell entità C e creazione del processo P(C ); 4 Il processo P(C ) viene posto in stato di attesa fino a che non risulti curt = P(C ).t; 5 Il cliente C viene inserito nella prima coda, e viene posto in stato di attesa fino a quando non si trovi in testa alla coda e risulti Impiegato.Libero = vero; 6 Si pone Impiegato.Libero := falso, si pone P(C).Tempo Prossima Attività =curt + C.t, e si pone il processo in stato di attesa fino a quando curt = P(C).Tempo Prossima Attività; 7 Si pone Impiegato.Libero := Vero e si interrompe il processo.

Simulazione per processi: il botteghino teatrale (2) Nell esempio considerato, l impiegato può essere considerato come una risorsa che viene utilizzata dai processi (clienti). In casi più complessi si possono avere diverse classi di entità e quindi tipi di processi che competono per l uso di risorse comuni. In questo caso si hanno processi che interagiscono, ciascuno condizionato dallo stato degli altri.