Nebenläufigkeit Teil I Vortrag zum Seminar von Prof. Dr. Wolfgang Reisig: Systementwurf Am 16.06.2005 Helmut Weidner-Kim (Weidner-Kim@bigfoot.com)
Nebenläufigkeit II Nebenläufigkeit I Inhaltsverzeichnis Beschreibung durch einfachen Beobachter Fairness Formalisierung Nebenläufigkeit II (Nachweis der Nebenläufigkeit) 2
1. Nebenläufigkeit Englisch: concurrency Wie der Name sagt: Mehrere Prozesse oder Threads „nebeneinander“ Details der Implementierung wie Scheduling oder Mehrprozessorsytem sind für dieses Thema unwichtig Das System als „black box“, die nur von außen betrachtet werden kann Verhalten des Systems ist beobachtbar Frage: Wie muss ein Beobachter aussehen, der Nebenläufigkeit erkennt? 3
Darstellung Petrinetze können benutzt werden, um Neben- läufigkeit zu beschreiben Hier: „alles“ mit Petrinetzen veranschaulicht Achtung: kompaktere Darstellung! Einfacher Fall, Synchronisation zusätzlich möglich t1 t2 4
2. Einfacher Beobachter Wird häufig benutzt Kann nur eine lineare Sequenz von Ereignissen registrieren Ereignisse sind atomare Zeitpunkte ohne Dauer 5
Darstellung Das „eigentliche“ Petrinetz als black Box Ankunft von Marken in äußeren Zuständen zeigt Transition an Was Beobachter mit Marken macht, interessiert hier nicht 6
Nebenläufigkeit als Nichtdetermininismus Verschiedene Reihenfolgen (je nach Ablauf): t2 Möglich sind: (t1,t2,t3,t4,t5); (t1,t2,t4,t3,t5); (t1,t2,t4,t5,t3); (t1,t4,t2,t3,t5); (t1,t4,t2,t5,t3); (t1,t4,t5,t2,t3) Dies könnte beispielsweise mit temporaler Logik beschrieben werden t3 t4 t5 7
(Voraussetzung für Nebenläufigkeit) 3. Fairness (Voraussetzung für Nebenläufigkeit) Idee: „jeder kommt einmal dran“ Für „unendliche“ Berechnungen reicht „einmal“ nicht aus! Also: Jeder Prozess bzw. Thread kommt unendlich oft dran ... 8
Grade der Fairness schwache Fairness (weak fairness, justice): starke Fairness (strong fairness): Unparteilichkeit (impartiality): Unparteilichkeit ⇒ starke Fairness ⇒ schwache Fairness 9
Beispiele für Fairness: 1 t2 t1 t3 t1 t2 Werden beide Prozesse fair behandelt? t4 t1 t3 t2 10
Beispiel für Fairness: 2 t2 t3 t1 t4 φ1 φ2 t1,t2,t3,t4,t3,t4,t3,t4,t3,t4, ... wäre nicht fair Fairnessbedingungen φ1, φ2 können das verhindern 11
Fairness ist nicht immer „fair“ φ1 Φ2 „unfaires“ Beispiel: Betrachte Reihenfolge: t1,t2,t3,t4,t1,t2,t3,t4,t3,t4, t1,t2,t3,t4,t3,t4,t3,t4, … D.h.: 1x der linke, 1x der rechte, 1x der linke, 2x der rechte, 1x der linke, 3x der rechte, 1x der linke, 4x der rechte, 1x der linke, 5x … … immer 1x der linke, nx der rechte Verhältnis der zugewiesen Zeit für linken und rechten Prozess geht gegen 0 ! Trotzdem fair: beide kommen unendlich oft dran! 12
Sinn der Fairness Nicht: Jeder Prozess erhält gleich viel Zeit(-einheiten) Sondern: jeder Prozess hat die Chance zu terminieren Keine quantitative, sondern eine qualitative Aussage! 13
Formalisierung Zeitstruktur des Multiprozesses Aussage über Startzustände Eine Fairnessbedingung 14
Formalisierung mit temporaler Logik Zeitstruktur des Multiprozesses Aussage über Startzustände Eine Fairnessbedingung 15
(Nichtdeterminiertheit/Fairness) Zusammenfassung (Nichtdeterminiertheit/Fairness) Einfacher Beobachter, erfasst die Sequenz der Nachrichten über Ereignisse im System Nebenläufigkeit = Nichtdeterminiertheit der Reihenfolgen in der Programmausführung Nebenläufigkeit erfordert Fairness: jeder Prozess darf terminieren (wenn er es kann) „ohne Fairness keine echte Nebenläufigkeit“ 16
Literaturquellen E. Allen Emerson Temporal and Modal Logic Austin, 1995 G.D.Plotkin, V.R. Pratt Teams can see pomsets http://boole.stanford.edu/pub/pp2.ps.gz mathworld.wolfram.com/ 17