29.01.2014 Aufrufe

Petri-Netz System Simulation Analyse Modellierung Vergleich ...

Petri-Netz System Simulation Analyse Modellierung Vergleich ...

Petri-Netz System Simulation Analyse Modellierung Vergleich ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

4 Anwendung der <strong>Petri</strong>-<strong>Netz</strong>e für die <strong>Modellierung</strong><br />

4.1 Methodisches Vorgehen bei der <strong>Modellierung</strong> mit <strong>Petri</strong>-<strong>Netz</strong>en<br />

Die Erstellung eines <strong>Petri</strong>-<strong>Netz</strong>es als Modell für ein parallel arbeitendes <strong>System</strong>, das<br />

bereits existiert oder noch zu konstruieren ist, ist meist ein iterativer Prozeß. Mit Hilfe der<br />

<strong>Simulation</strong> und insbesondere der <strong>Analyse</strong> werden die Eigenschaften des <strong>Petri</strong>-<strong>Netz</strong>-<br />

Modells ermittelt und mit den gewünschten <strong>System</strong>eigenschaften verglichen.<br />

Abweichungen können ihre Ursache in einer fehlerhaften bzw. unvollständigen<br />

<strong>Modellierung</strong> haben oder einen Hinweis auf ein nicht korrekt arbeitendes bzw. nicht korrekt<br />

konzipiertes <strong>System</strong> geben. Modifikationen des <strong>Petri</strong>-<strong>Netz</strong>es sind die Konsequenz. Dieses<br />

Vorgehen ist in Abbildung 4.1.1 skizziert.<br />

<strong>System</strong><br />

<strong>Vergleich</strong><br />

<strong>Modellierung</strong><br />

Modifikationen<br />

Eigenschaften<br />

des Modells<br />

<strong>Petri</strong>-<strong>Netz</strong><br />

<strong>Simulation</strong><br />

<strong>Analyse</strong><br />

Abb. 4.1.1: Iteratives Vorgehen bei der <strong>Modellierung</strong> mit <strong>Petri</strong>-<strong>Netz</strong>en<br />

Der erstmalige Prozeß der <strong>Modellierung</strong> eines <strong>Petri</strong>-<strong>Netz</strong>es verlangt<br />

ein stufenweises Vorgehen:<br />

1.Stufe: a) Interpretation für Plätze bzw. Transitionen,<br />

d.h. welche Elemente des realen <strong>System</strong>s entsprechen<br />

den passiven Elemente und welche den aktiven Elemente?<br />

(mögliche Interpretationen sind in Tabelle 4.1 zu finden),<br />

b) lokalen kausalen Platz-Transitions-Zusammenhang formulieren,<br />

d.h. Vor- und Nachplätze einer Transition bzw.<br />

Vor- und Nachtransitionen eines Platzes festlegen,<br />

2.Stufe:<br />

Entwurf eines zusammenhängenden Prozeßnetzes aus Teilnetzen,<br />

21


3.Stufe:<br />

Festlegung einer Anfangsmarkierung und einer Schaltregel,<br />

um das dynamische <strong>System</strong>verhalten zu untersuchen.<br />

Plätze<br />

(passive Elemente)<br />

Zustände<br />

Aussagen<br />

Reagenzien<br />

Sprachen<br />

Materialien<br />

Speicher<br />

Transitionen<br />

(aktive Elemente)<br />

Übergänge<br />

Beweise<br />

chemische Reaktionen<br />

Übersetzer<br />

Produktionsaktivitäten<br />

Prozessoren<br />

Tabelle 4.1: Interpretationen für Plätze und Transitionen<br />

22


4.2 Beispiele für die <strong>Modellierung</strong> mit <strong>Petri</strong>-<strong>Netz</strong>en<br />

Das im vorhergehenden Kapitel skizzierte Vorgehen soll nun an einigen Beispielen gezeigt<br />

werden.<br />

4.2.1 Sender-Empfänger-Modell<br />

Als Modifikation des Erzeuger-Verbraucher-<strong>System</strong>s wird jetzt ein Nachrichtensystem<br />

bestehend aus einem Sender, einem Empfänger und einem Übertragungskanal betrachtet<br />

(ein reales Beispiel hierfür ist ein Rohrpostsystem):<br />

1. Variante<br />

1) Ein Sender gelangt aus einem Wartezustand in einen Bereitzustand und umgekehrt.<br />

2) Im Bereitzustand kann der Sender entweder eine Nachricht senden oder in seinen<br />

Endzustand übergehen.<br />

3) Die gesendeten Nachrichten werden vom Sender in einem Kanal abgelegt<br />

(, der maximal zwei Nachrichten aufnehmen kann).<br />

4) Ein Empfänger gelangt von einem Wartezustand in einen Bereitzustand und<br />

umgekehrt.<br />

5) Im Bereitzustand kann der Empfänger entweder eine Nachricht aus dem Kanal<br />

entnehmen oder in seinen Endzustand übergehen.<br />

6) Im Anfangszustand befinden sich der Sender und der Empfänger im Bereitzustand,<br />

und der Kanal sei leer.<br />

23


Abb. 4.2.1: Sender-Empfänger-Modell - 1. Variante<br />

Abbildung 4.2.1 zeigt die Realisierung der 1. Variante als Platz-Transitions-<strong>Netz</strong>. Sie ist<br />

jedoch unbefriedigend, da der Empfänger auch dann in seinen Endzustand übergehen<br />

kann, wenn<br />

(i) der Sender sich noch nicht in seinem Endzustand befindet,<br />

(d.h. er könnte eventuell später noch senden) bzw.<br />

(ii) der Kanal noch nicht leer ist.<br />

Um diese Übergänge auszuschließen, wird unser Modell wie folgt erweitert:<br />

2. Variante<br />

1) bis 6) nach Variante 1,<br />

7) Es wird ein komplementärer Kanal zwischen Empfänger und Sender eingerichtet. In<br />

ihm wird die freie Kapazität des Übertragungskanals gezählt (z.B. Anzahl der leeren<br />

Rohrpostbehälter). Der Sender reduziert beim Senden einer Nachricht die freien<br />

Kapazitäten um eins, während der Empfänger beim Empfangen die freien<br />

Kapazitäten um eins erhöht. Andererseits soll der Empfänger nur dann abschalten,<br />

wenn alle Kapazitäten frei sind, d.h. der Übertragungskanal demzufolge keine<br />

Nachricht enthält. Zum <strong>System</strong>start sei die maximale Anzahl von zwei freien<br />

Kapazitäten verfügbar.<br />

24


Bemerkung:<br />

Der Test eines Platzes auf Null Marken wird als Nulltest eines Platzes bezeichnet.<br />

Das hier beschriebene Vorgehen der Einführung eines Coplatzes für den Nulltest<br />

funktioniert jedoch nur, wenn die Kapazität des zu testenden Platzes beschränkt ist,<br />

da der Coplatz die um die Anfangsmarkierung des zu testenden Platzes reduzierte<br />

Kapazität des zu testenden Platzes als Anfangsmarkierung erhält. Eine derartige<br />

Beschränkung der Kapazität ist für die meisten Praxisanwendungen gegeben.<br />

8) Wir führen einen weiteren Kanal ein, über den der Empfänger die<br />

Fertigmeldung des Senders erhält. Der Empfänger soll nur dann in seinen<br />

Endzustand übergehen können, wenn er bereit und der Sender fertig ist.<br />

Abbildung 4.2.2 beinhaltet das Sender-Empfänger-Modell mit den beiden zusätzlichen<br />

Plätzen Kanlfrei und S_fertig und den erforderlichen Bögen.<br />

Abb. 4.2.2: Sender-Empfänger-Modells - 2. Variante<br />

25


Dieses Sender-Empfänger-Modell wird nun in eine Umgebung eingebettet, die seinen<br />

Wiederanlauf steuert.<br />

3. Variante:<br />

9) Wenn Sender und Empfänger in ihren Endzustand übergehen, geben<br />

sie ein entsprechendes Ausschaltsignal an die Umgebung ab.<br />

10) Der Wiederanlauf von Sender und Empfänger erfolgt synchron, d.h.<br />

erst wenn beide Ausschaltsignale vorhanden sind, dürfen beide<br />

mit dem Wiederanlauf beginnen.<br />

11) Bei den weiteren Vorbereitungen auf den Betrieb gehen Sender und<br />

Empfänger in den Bereitzustand über und der Kanal wird auf die volle<br />

freie Kapazität gebracht.<br />

Das so vervollständigte Modell ist in Abbildung 4.2.3 dargestellt.<br />

Abb. 4.2.3: Sender-Empfänger-Modell - 3. Variante<br />

26


Wenn das Sender-Empfänger-Modell korrekt modelliert ist, so besitzt es folgende<br />

Eigenschaften:<br />

(E1) Sender und Empfänger befinden sich in jedem Fall in genau<br />

einem Zustand aus Menge {S_wartet, S_bereit, S_Ende} bzw.<br />

{E_wartet, E_bereit, E_Ende}.<br />

(E2) Der Platz Kanal enthält niemals mehr als 2 Marken.<br />

(E3) Der Sender (bzw. Empfänger) ruht genau dann, wenn er ein entsprechendes Signal<br />

an die Umgebung gegeben hat. Den Ruhezustand kann er nur durch ein Signal aus<br />

der Umgebung wieder verlassen.<br />

(E4) Wenn der Sender in seinen Ruhezustand übergegangen ist, so kann er ihn erst<br />

dann wieder verlassen, wenn vorher auch der Empfänger seinen Ruhezustand<br />

eingenommen hat.<br />

(E5) Der Empfänger ist in seiner Entscheidung zu empfangen oder in seinen<br />

Ruhezustand überzugehen, völlig abhängig vom Sender. In der Situation E_bereit<br />

tritt niemals ein Konflikt auf, d.h. niemals sind E_empfgt und E_aussch zugleich<br />

aktiviert.<br />

(E6) Der Empfänger kann nur dann in seinen Ruhezustand übergehen,<br />

wenn der Kanal leer und der Sender in seinem Ruhezustand ist.<br />

Diese Eigenschaften lassen sich mit Hilfe von Invarianten (siehe Kapitel 5.9) nachweisen.<br />

Um ein Sender-Empfänger-Modell mit unbegrenzter Kanalkapazität korrekt zu<br />

modellieren, ist die Klasse der Platz-Transitions-<strong>Netz</strong>e nicht geeignet. Hierfür sind Höhere<br />

<strong>Petri</strong>-<strong>Netz</strong>-Klassen erforderlich (siehe Kapitel 7).<br />

27


4.2.2 Fünf-Philosophen-Problem<br />

Ein weiteres, sehr bekanntes Problem ist das auf Dijkstra zurückgehende<br />

Fünf-Philosophen-Problem (Five Philosophers Dining Problem):<br />

Fünf Philosophen leben gemeinsam in einem Haus. Ihr Leben besteht abwechselnd aus<br />

Denken, Essen und Schlafen. Während die Resultate ihres Denkens und auch ihre<br />

Schlafgewohnheiten von geringem Interesse sind, entsteht beim Essen ein echtes<br />

Problem: Die Philosophen nehmen ihre Mahlzeiten an einem gemeinsamen runden Tisch<br />

ein, an dem jeder seinen festen Platz mit eigenem Teller hat. Es wird eine Fischart<br />

gegessen, die nur mit zwei Gabeln verzehrt werden kann. Zwischen zwei Tellern liegt<br />

jedoch nur eine Gabel (siehe Abbildung 4.2.4):<br />

Abb. 4.2.4: Fünf Philosophen beim Essen von Fisch<br />

Aufgabe: Es ist ein optimaler Algorithmus zu entwickeln, der ohne Vorschrift individueller<br />

Essenszeiten die Gabelverteilung so regelt, daß kein Philosoph verhungert.<br />

Selbstverständlich ist vorausgesetzt, daß ein essender Philosoph gelegentlich satt wird,<br />

seine Gabeln säubert und sie zurücklegt.<br />

28


Variante 1 a):<br />

Ein hungriger Philosoph greife zunächst nach der linken Gabel. Hat er diese, so greife er<br />

nach der rechten Gabel. Erhält er diese ebenfalls, so darf er essen. In den beiden anderen<br />

Fällen muß er warten.<br />

Abb. 4.2.5: Lebenszyklus des Philosophen 1 für Variante 1 a)<br />

Die Gesamtlösung für Variante 1 erhält man, indem die einzelnen Lebenszyklen der<br />

Philosophen gemäß Abbildung 4.2.5 übereinandergelegt werden, wobei die gleich<br />

bezeichneten Bedingungen fork1 bis fork5 verschmolzen werden (siehe die gestrichelten<br />

Linien). Daraus ergibt sich, daß zwei benachbarte Philosophen nicht gleichzeitig essen<br />

können.<br />

<strong>Analyse</strong>:<br />

Wenn alle Philosophen gleichzeitig hungrig sind und alle ihre linke Gabel nehmen, dann<br />

erhält kein Philosoph seine rechte Gabel. ==> Alle Philosophen verhungern.<br />

Das stellt eine (totale) <strong>System</strong>verklemmung (Deadlock) dar.<br />

29


Variante 1 b):<br />

Wie die Variante 1 a) aber mit einer Zusatzregel:<br />

Falls ein Philosoph, der die linke Gabel hat, die rechte Gabel nicht erhält, so kann er die<br />

linke Gabel zurücklegen. Diese Lösung zeigt Abbildung 4.2.6.<br />

Abb. 4.2.6: Lebenszyklus des Philosophen 1 für Variante 1 b)<br />

<strong>Analyse</strong>:<br />

Jetzt gibt es kein Deadlock. Falls jedoch alle Philosophen im "Takt" die linke Gabel<br />

nehmen und dann wieder hinlegen, dann verhungern ebenfalls alle Philosophen. Das<br />

<strong>System</strong> ist mit sich selbst beschäftigt und die schaltfähigen Transitionen "eatsi" sind daran<br />

nicht beteiligt. Man spricht hier von einem Livelock.<br />

Variante 2:<br />

Wie Variante 1a) mit der Zusatzregel, daß der Gabelzugriff exklusiv nur einem<br />

Philosophen gestattet ist, d.h. wenn ein Philosoph beide Gabeln erhalten hat, gibt er das<br />

Exklusivrecht zurück und ein anderer Philosoph kann auf die Gabeln zugreifen.<br />

30


Diese Variante ist für Philosoph 1 in Abbildung 4.2.7 skizziert.<br />

Abb. 4.2.7: Lebenszyklus des Philosophen 1 für Variante 2<br />

<strong>Analyse</strong>:<br />

Die Exklusivität des Zugriffes sichert, daß kein Deadlock entsteht. Der Algorithmus ist<br />

allerdings nicht optimal:<br />

Es kann nämlich ein Philosoph am Essen gehindert werden, auch wenn dessen beide<br />

Gabeln frei sind. Nehmen wir an Philosoph 1 esse gerade. Dann sind die Gabeln 1 und 2<br />

belegt. Nun möge Philosoph 5 hungrig werden und seine linke Gabel 5 nehmen, die rechte<br />

Gabel 1 erhält er allerdings nicht, da diese ja Philosoph 1 hat. Wenn nun Philosoph 3 an<br />

den Tisch kommt, muß er warten, obwohl doch seine beiden Gabeln 3 und 4 frei sind, da<br />

Philosoph 5 bereits das Exklusivrecht besitzt. Neben dem Philosophen 3 hat Philosoph 5<br />

auch Philosoph 4 am Essen gehindert, da er ihm die Gabel 5 weggenommen hat, obwohl<br />

ihm diese nichts nützt.<br />

Schlußfolgerung:<br />

Ein Philosoph sollte eine Gabel nur erhalten, wenn er auch die andere Gabel erhalten<br />

kann.<br />

31

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!