Problemstellung
- Spezifikation eines Queueing-Systems:
- Beispiel fifo3
- Generator erzeugt nE = 13 Entities mit
id's 1,2 .. nE im Zeitabstand tG = 1
- ankommende Entity sucht sich die kürzeste Queue
(incl. Serverbelegung)
- bei mehreren kürzesten wird die mit der kleinsten
Nummer gewählt
- Server bearbeiten jeweils eine Entity mit fester
Bedienzeit tS = 4.5
- fertige Entities verlassen das System
- gewünschte Ergebnisse
- id's der ausgehenden Entities über die Zeit des
Verlassens
- Länge der drei Queues über die Zeit
- 2 verschiedene Implementationen (fifo3A,
fifo3B)
- Ergebnisse
- welche sind richtig?
- Verhalten per Hand bestimmen:
- wie gehabt mit Entitäten-Tabelle
- bei t = 10 gibt es zwei verschiedene Reihenfolgen
- A: E4 verlässt Server / E6 rückt nach / E10
betritt Queue
- B: E10 betritt Queue / E4 verlässt Server / E6
rückt nach
- ergibt letzlich keinen Unterschied
- bei t = 11 analog, aber diesmal mit Konsequenzen!
- obiges Bild zeigt Version A = Ergebnis von fifo3A
- Version B
- was ist richtig?
- Spezifikation eines Systems:
- oft sprachlich, nicht präzise genug
- häufig Details/Spezialfälle nicht beachtet
- besonders schwierig: gleichzeitige Events im Kontext
vieler Komponenten
- was passiert bei echter Gleichzeitigkeit
(Mehr-Prozessor-CPU)?
- Formale Spezifikation mit PDEVS:
- PDEVS = Parallel Discrete EVent System [13],
[L8, Kap.4]
- wichtige Eigenschaften
- exakt definiert
- geeignet zur Beschreibung beliebiger diskreter
Systeme
- erlaubt mathematische Analyse von Modellen
- beschreibt Komponenten und ihre Verknüpfungen
- einzelne Komponente: Atomic
PDEVS
- System aus Komponenten: Coupled
PDEVS
- hierarchischer Aufbau wie üblich
- Erweiterung von (Classical) DEVS
- vereinfacht Beschreibung bei gleichzeitigen
Events
- erlaubt Parallelität der Ausführung