90 likes | 138 Vues
Einführung in das Simulationsframework. Referent: Jan Schröter. Übersicht. basiert auf dem Simsalabim-Paket von Martin Öster und Johan Larson stellt ein Grundgerüst für ereignisorientierte Simulation dar geschrieben in Java 1.1
E N D
Einführung in das Simulationsframework Referent: Jan Schröter
Übersicht • basiert auf dem Simsalabim-Paket von Martin Öster und Johan Larson • stellt ein Grundgerüst für ereignisorientierte Simulation dar • geschrieben in Java 1.1 • Sammlung von Klassen und Interfaces, die einen Rahmen bilden für die Simulation AWS00/sim
Die eigentliche Simulationsengine. Arbeitet die in der Eventwarteschlange wartenden Events ab. Methoden: start() - startet die Simulation, nimmt jeweils nächstes Ereignis aus der Warteschlange und ruft dessen resume()-Methode auf. Dabei werden allen Supervisor benachrichtigt. post(SimEvent e) - fügt ein neues Ereignis in die Warteschlange ein Achtung: Events können illegalerweise in die Vergangenheit gepostet werden! addSupervisor() - Fügt dem System einen neuen Supervisor hinzu Die Framework-Klassen: SimSystem AWS00/sim
Die Framework-Klassen: SimEvent Abstrakte Klasse eines Event. Flags: • isDue - ist soll das Ereignis ausgeführt werden (dadurch Löschen möglich) • isPrimary - falls true, werden zuerst die Supervisor benachrichtigt Methoden: • resume() - Ereignisroutine des Ereignisses, wird von SimSystem aufgerufen AWS00/sim
Die Framework-Klassen: SimSupervisor Interface, das eine Überwachungsinstanz des Simulationslaufes modelliert. Hier können statistische Daten gesammelt werden. Methoden: • supervise(SimEvent e) - Jedes abgearbeitete Ereignis wird den Supervisor-Objekten durch diese Methode übergeben. AWS00/sim
Die Framework-Klassen: Der Rest • SimReceiver - Interface, die Events empfangen kann (legacy von Simsalabim) • Linkage & List - Hilfsklassen zur Realisierung von Warteschlangen AWS00/sim
Ablauf der Eventbehandlung AWS00/sim
Beispiel: simExample.CallCenter Das Beispiel aus der Vorlesung mit Hilfe des Simulationsframeworks. folgende Klassen: • CallCenter • CallSupervisor • NewCustomerEvent • EndOfServiceEvent • EndOfPatienceEvent • EndOfSimEvent AWS00/sim