170 likes | 265 Views
Vortrag zum Seminar von Prof. Dr. Wolfgang Reisig: Systementwurf. Nebenläufigkeit Teil I. Am 16.06.2005 Helmut Weidner-Kim (Weidner-Kim@bigfoot.com). Inhaltsverzeichnis. Nebenläufigkeit I. Nebenläufigkeit Beschreibung durch einfachen Beobachter Fairness Formalisierung.
E N D
Vortrag zum Seminar von Prof. Dr. Wolfgang Reisig: Systementwurf NebenläufigkeitTeil I Am 16.06.2005 Helmut Weidner-Kim (Weidner-Kim@bigfoot.com)
Inhaltsverzeichnis • Nebenläufigkeit I • Nebenläufigkeit • 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 t1 • Hier: „alles“ mit Petrinetzen veranschaulicht • Achtung: kompaktere Darstellung! • Einfacher Fall, Synchronisation zusätzlich möglich 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 t1 • 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
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
t3 t2 t1 t1 t3 t2 t2 t1 t4 Beispiele für Fairness: 1 Werden beide Prozesse fair behandelt? 10
t4 t2 t1 t3 φ2 φ1 Beispiel für Fairness: 2 • t1,t2,t3,t4,t3,t4,t3,t4,t3,t4, ... wäre nicht fair • Fairnessbedingungen φ1, φ2 können das verhindern 11
t4 t2 t1 t3 φ1 Φ2 Fairness ist nicht immer „fair“ „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
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 EmersonTemporal and Modal Logic Austin, 1995 G.D.Plotkin, V.R. PrattTeams can see pomsets http://boole.stanford.edu/pub/pp2.ps.gz mathworld.wolfram.com/ 17