einführung in das simulationsframework
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
Einführung in das Simulationsframework
Referent: Jan Schröter
AWS00/sim 2
Ü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 3
Die Framework-Klassen: SimSystem
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 einAchtung: Events können illegalerweise in die Vergangenheit gepostet werden!
• addSupervisor() - Fügt dem System einen neuen Supervisor hinzu
AWS00/sim 4
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
benachrichtigtMethoden:• resume() - Ereignisroutine des Ereignisses, wird von
SimSystem aufgerufen
AWS00/sim 5
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 6
Die Framework-Klassen: Der Rest
• SimReceiver - Interface, die Events empfangen kann (legacy von Simsalabim)
• Linkage & List - Hilfsklassen zur Realisierung von Warteschlangen
AWS00/sim 7
Ablauf der EventbehandlungSimSystem sim = new SimSystem();
sim.post(new SimEvent e());
sim.start();
...
dispatch(event);
event.resume();
notifySupervisors(event);
// Simulator initialisiert
// neues Event wird gepostet
// Starten der Simulation
// Zeit vergeht
// SimSystem dispatcht Event
// SimSystem ruft dieEventmethode auf// SimSystem benachrichtigtdie Supervisors
Beispiel: simExample.CallCenter
AWS00/sim 9
Beispiel: simExample.CallCenter
Das Beispiel aus der Vorlesung mit Hilfe des Simulationsframeworks.
folgende Klassen:• CallCenter• CallSupervisor• NewCustomerEvent• EndOfServiceEvent• EndOfPatienceEvent• EndOfSimEvent