Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Lore Heisser Geändert vor über 11 Jahren
1
Modellierungswerkzeug Heidelberg, 2006 © Wolfgang Schönfeld
2
Modell (nach Wikipedia) entweder ein Vorbild, das der Nachahmung dient, oder die – meist verkleinerte – Nachahmung eines Vorbilds vgl. Modelleisenbahn - nicht nur Spielzeug, sondern auch (ernsthaftes) Lern-Hilfsmittel, vor allem für das ungefährliche Ausprobieren von SondersituationenSondersituationen
3
existierende Werkzeuge Visualisierung von Verteilten Algorithmen durch animierte HTML- und JAVA-Applets, Dortmund, 1997 Java Network SimulatorJava Network Simulator, in SourceForgeNetSourceForgeNet Java-Version von ND-2 (das in C++ implementiert wurde) Überblick Netzwerksimulatoren (von 1997)Überblick Netzwerksimulatoren (von 1997) (nur im WWW) msgnetmsgnet (R. Schiele, sourceforge.net) NetLogo
4
eigenes Modellierungswerkzeug für einfaches Herstellen einfacher Modelle selbst implementiert in Java (vor allem, weil kurzer Edit-Test- Zyklus) mit ECLIPSE nicht: (einfache) sequenzielle Programme auf einem Multi- Tasking-System laufen lassen sondern: Verteilung selber realisieren (eigenes kleines "Betriebssystem") Gründe (echte?) Verteilung besser steuerbar bestimmte Abläufe exakt wiederholbar Verwendung in meiner ersten Vorlesung war nicht geplant. Ursprünglich war es gedacht für die Entwicklung von mobilen Systemen. Ich möchte es auch jetzt noch nicht aus der Hand geben.
5
Ausführung mehrerer Prozesse durch einen Rechner (Multitasking) Prozesse in einem Kreis anordnen rundum durchlaufen ("round robin") und jeweils ein Stück ("Schub") voranbringen Auch Menschen sind zu Multitaking fähig. Die Länge der Schübe wird bei Betriebssystemen präemptiv (zentrale Instanz entscheidet) kooperativ (jeder Prozess entscheidet selbst) bestimmt. Frauen und Männer unterscheiden sich!
6
Prozess Runde Zeit 1234 1 2 3 4
7
Fairness Die Ausführung muss möglichst fair sein. Insbesondere sollte eine in einer bestimmten Runde abgesandte Nachricht nicht in derselben Runde verarbeitet werden. Dazu fügt man den Nachrichten ihren Absendezeit hinzu und sorgt dafür, dass sie frühestens in der nächsten Runde verarbeitet wird.
8
1234 1 2 3 4 Senden Empfangen nicht hier erst hier
9
arbeiten "kooperativ". Bei jedem ist von vornherein bekannt, was er macht (in einem "Schub"): 1.Nimm die oberste Nachricht vom Eingangspostkasten. 2.Verarbeite sie. 3.Versende neue Nachricht(en). Deswegen ist Unterbrechen nicht nötig! Erfasst man mit einfachem Nachrichten-Austausch alle Möglichkeiten zur Interaktion? Die Prozesse im Modellierungswerkzeug
10
(vereinfachter) Nachrichtentransport Es kommt nur darauf an, dass eine Nachricht zum Empfänger gelangt, aber nicht wie. Daher wird die Nachricht mit einer Laufzeit versehen. Der Sender legt sie in den Eingangspostkasten ("inbox") des Empfängers. Dort muss sie so lange warten, bis die Laufzeit vorüber ist. Diese Laufzeit kann fest eingestellt sein von der realen Entfernung abhängen zufällig sein von der Dringlichkeit abhängen
11
Bedienung "Load" lädt - je nach Version - ein Netz von der Datei. "Print" druckt den momentanen Zustand. "Initialize" ist eine eigenhändige Änderung des Zustands: Einem ausgewählten Knoten wird eine Nachricht in die inbox gelegt. Dies darf nur dann geschehen, wenn das Netz nicht aktiv ist. "Run" schaltet den Takt an. "Step" startet einen Taktschritt. Es kann nicht gleichzeitig mit "Initialize" gedrückt werden. Deswegen braucht man da keine Vorkehrungen wegen gleichzeitigem Zugriff zu treffen.)
12
Darstellung Knotens werden durch Rechtecke mit der vorgegebenen Position dargestellt. Neben dem Rechteck steht der Name des Knoten (und weitere Information). Die Laufzeit soll später durch einen Pfeil entsprechender Länge dargestellt werden, desse Spitze auf den Empfänger zeigt und diesen am Ende erreicht.
13
Implementiert sind Mengen durch ArrayList: Knoten (Netz) Verbindungen (Links) Nachrichten –get - Nimm die oberste Nach von der inbox und verarbeite sie. –remove - Entferne sie von der inbox
14
Implementiert sind Aktionen der einzelnen Knoten als Teile des Java-Programms. Es gibt also keine "Aktionssprache" und keinen Interpreter dafür. Geplant ist die Heraustrennung der Aktionssprache in eigene, getrennte Objekte Knoten (erledigt alle Systemaufgaben) Akteur (sitzt "auf" dem Knoten und erledigt die Anwendungen)
15
Speicherung in Dateien Nodes.dat erste Zeile: Vereinbarung der Namen der Knoten danach: ihre Position und erreichbaren Nachbarn Derzeit nur Load, nicht Save.
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.