Sistema : collezione di componenti (elementi, entità) interdipendenti che interagiscono fra loro in accordo a specifiche predefinite.
Studio, analisi del sistema al variare delle caratteristiche operative.
Sistema → 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
Rappresentazione del sistema : stato variabili di stato
regole di trasformazione fra stati
Comportamento del sistema : storia degli stati
Evoluzione delle variabili di stato in funzione del tempo.
stato del sistema ↔ stato del modello
storia degli stati del sistema ↔ storia degli stati del modello Simulazione : uso del modello per la produzione cronologica
della storia degli stati del modello,
corrispondente alla storia degli stati del
sistema
Sim.1.2 Modelli per la valutazione di sistemi:
• analitici
* basati su processi stocastici (Markoviani)
* modelli di code
servente singolo a rete di code
modelli in forma prodotto
* soluzioni simboliche
* soluzioni numeriche
• simulativi
• ibridi
Modelli di simulazione: possibilità di una descrizione procedurale delle variabili e delle regole di trasformazione
Simulazione digitale: basata su elaborazione digitale.
Programma di simulazion : 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 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à)
Evento : cambiamento di stato
a cui è associato un istante (tempo) di occorrenza esempio : sistema di elaborazione uniprocessore
arrivo di un programma da elaborare
completamento dell'elaborazione di un programma __________*_______________*_________ →
t
arrivo↑ t
completamentot
simulatoAttività : collezione di operazioni che trasforma lo stato di una componente.
Una attività viene eseguita in un tempo ed è caratterizzata da un evento di INIZIO e da un evento di TERMINAZIONE.
Ogni evento è caratterizzato dalla coppia (ei, ti) ei identifica l'evento
ti il tempo di occorrenza dell'evento Evoluzione temporale
… (e1, t1) (e2, t2) … (en, tn) … t1<t2<…<tn
Simulazione discreta : sequenza di eventi ei e relativi tempi di occorrenza ti
Processo : sequenza di eventi ordinati nel tempo
Sim.1.4 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.
Contrazione / espansione temporale.
Rappresentazione dell'evoluzione temporale : orologio (clock) Avanzamento del tempo di simulazione :
• per intervalli fissi
il tempo di clock, t, è incrementato di una quantità fissa ∆ (p.es.
1minuto, 1 sec., 1 microsec.) e 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.
• per eventi
si incrementa il clock fino al tempo di occorrenza del prossimo (primo) evento ( t ← t1). 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.
Dai tre concetti : evento attività processo derivano diversi approcci alla simulazione
• Simulazione per sequenziamento di eventi
• Simulazione per scansione di attività
• Simulazione per interazione fra processi Simulazione per interazione fra processi
Comportamento del sistema : insieme di processi (programmi in esecuzione quasi parallela)
Entità → processo
esempio: sistema di elaborazione uniprocessore con periferiche
un processo per ogni job nel sistema,
un processo per la CPU, uno per ogni periferica
Ogni processo viene eseguito ciclicamente esempio: 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 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
*
il servizio è realizzato valutandone il ritardo introdotto.Il processo descritto nell'esempio è un algoritmo
Il passo 4 non viene eseguito finché il clock non è avanzato di
Sim.1.6
→ 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) 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} (oggetti sospesi) { processi bloccati} (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
INIZIO INIZIALIZZAZIONE
ROUTINE DI CONTROLLO
PROC.
ARRIVI PROC.
JOB 1
PROC.
JOB N
… PROC.
CPU
PROC.
PERIF.
PROC.
OSS.
FINE SIM.
FINE OGGETTI
SOSPESI
OGGETTI PASSIVI
Un processo cambia stato da sospeso ad attivo tramite primitive del linguaggio.
Ad esempio la primitiva HOLD(T) in Simula la cui esecuzione provoca una sospensione del processo per un tempo T, preceduta dal salvataggio dello stato del processo.
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.
Sim.1.8 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.
Simula (Dahal-Nygaard 1966): liguaggio orientato ad oggetti;
concetto di classe, primitive per la gestione degli oggetti
(ACTIVATE, PASSIVATE, HOLD,...).
Simulazione per sequenziamento di eventi
La simulazione orientata ad eventi si basa su un insieme di procedure (sottoprogrammi), ognuna associata ad un evento, che realizzano le trasformazioni di stato relative.
Evento → procedura (segmento di programma)
Lo schema del programma di controllo è simile al caso di simulazione orientata a processi.
Il programma termina quando viene raggiunto il tempo di fine simulazione, stabilito con un criterio opportuno.
INIZIO INIZIALIZZAZIONE
Determina il prossimo evento
Gestione
evento 1
…
Gestione eventoFINE SIM.
Poni clock=0
FINE Aggiorna il clock
Passa il controllo alla procedura relativa all'evento selezionato
Gestione evento 2
Gestione evento N SEQUENZIATORE
Il numero e la struttura delle procedure dipende dagli eventi
considerati nel modello e dall'approccio seguito.
Sim.1.10 Simulazione per scansione di attività
La simulazione per scansione di attività si basa sulla descrizione delle attività delle componenti del modello.
Attività → procedura (segmento di programma)
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).
INIZIO INIZIALIZZAZIONE
Gestione attività 1
…
Prevedi il primo evento
FINE Aggiorna il clock
Gestione attività 2
Gestione attività M Gestione attività FINE SIM.