Vs2.3 1 2.3 Klassifizierung von Kommunikationsdiensten synonym:Nachrichtensystem/dienst(message service) Kommunikationssystem/dienst(communication service)

Slides:



Advertisements
Ähnliche Präsentationen
Beim Start eines Prozesses in Windows NT, 2000 wird a der Programmtext aus der exe-Datei ab der dort angegebenen Adresse gespeichert.
Advertisements

Vs61 6 Verteilte Datenverwaltung. vs62 Ziel:Zusammengehöriger Datenbestand soll über mehrere Stationen verteilt werden, z.B. Fragmentierung: in mehrere.
6.3 Ereignisbasierte Systeme Ereignis (event) : eine Ereignis-Quelle (event source, publisher) generiert Benachrichtigung (event notification), an der.
2.4 Kommunikationsdienste des Betriebssystems
4 Verteilte Algorithmen
2 Kommunikationssysteme bieten Kommunikationsdienste an, die das Senden und Empfangen von Nachrichten erlauben (sending & receiving messages) bestehen.
4.2 Gruppenkommunikation (group communication) Bedeutet:Sendeoperation bezieht sich auf mehrere Adressaten - die Mitglieder einer Prozeßgruppe (process.
Vs Klassifizierung von Kommunikationsdiensten synonym:Nachrichtensystem/dienst(message service) Kommunikationssystem/dienst(communication service)
Objektorientierter Entwurf
Bericht über Arbeiten zu Asynchronen Wave Pipelines Stephan Hermanns Sorin Alexander Huss.
Präsentation zum Thema Netzwerk Von Jan Metz.
Sequenzdiagramm.
FH-Hof Sockets in Java Richard Göbel. FH-Hof Kommunikation über das Internet - Grundlagen Ein Rechner wird im Internet über die so genannte IP- Adresse.
1 Named Pipes alias FIFO Haben einen Eintrag im Dateisystem und sind somit durch Zugriffsrechte identifizierbar Ermöglichen die Kommunikation zwischen.
Client-Server-Architekturen
7 Verteilungsabstraktion
Bs Kommunikation Kommunikation zwischen Benutzerprozessen (IPK) stellt andere Anforderungen als auftragsorientierte Kommunikation in mikrokernbasierten.
Übersetzung durch Mensch und Maschine Einleitung Einleitung Entwicklungsgechichte der MÜ Entwicklungsgechichte der MÜ Entwicklungsphasen der MÜ Entwicklungsphasen.
JAVA RMI.
Seminar: Architekturbeschreibungssprachen
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Bericht über Arbeiten zu Asynchronen Wave Pipelines Stephan Hermanns Sorin Alexander Huss.
Einführung in die Semantik
Evaluierung des ITU-T.124 Telekonferenzstandards
Entwicklung verteilter eingebetteter Systeme - Einführung
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 4 Folie 2 Message Passing mittels Sockets (1) s.a.
PSI - Überblick und Szenarien
Julia Grabsch Florian Hillnhütter Fabian Riebschläger
Allgemeine Technologien I Sitzung am Mailserver
Information und Kommunikation
7.1.5 Java RMI – Remote Method Invocation
David Kružić Studienprojekt: DecidR+ 18. Januar 2010 WS – BPEL.
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
2. Kommunikation und Synchronisation von Prozessen 2
->Prinzip ->Systeme ->Peer – to – Peer
4.4 Sperrsynchronisation
ROS – Robot Operating System
Vs Gruppenkommunikation (group communication) Bedeutet:Sendeoperation bezieht sich auf mehrere Adressaten - die Mitglieder einer Prozessgruppe.
Vs51 5 Verteilte Datenverwaltung. vs52 Situation:Zusammengehöriger Datenbestand ist über mehrere Stationen verteilt, z.B. Fragmentierung: in mehrere Fragmente.
5.1.2 Sequentielle Konsistenz
Vs31 3 Netzdienste im Internet. vs32 Netzdienste = über Ports ansprechbare Dienste, die hauptsächlich (aber nicht nur) für die Fernnutzung gedacht sind.
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
Vs41 4 Verteilte Algorithmen. vs42 Prozesse als Systemkomponenten:  Spezifikation eines Prozesses ? (Vgl. Spezifikation eines ADT) syntaktisch:z.B. Ports.
Cloud Entwicklung: Web Services
Mailserver IT-Zertifikat der Phil.-Fak.: Advanced IT Basics
Fragenkatalog GK Informatik Zur Vorbereitung auf das mündliche Abitur.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Kommunikation von Prozessen Signale und Pipes Alexander Sczyrba
Vs Kommunikationsdienste des Betriebssystems Interprozesskommunikation (inter-process communication, IPC) am Beispiel Unix HW BS Prozesse Kommunizierende.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung I/O Multiplexing Alexander Sczyrba
Verteilte Systeme Sommersemester 2007 Karsten Otto.
ICMP Internet Control Message Protocol Michael Ziegler Universität Freiburg Michael Ziegler.
Netzwerk - Programmierung
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Concurrent Clients Alexander Sczyrba
Mailserver Referat im Rahmen des „Advanced IT-Basics“-Kurses im Sommersemester Juli 2016 Carsten Gerards.
Verteilte Systeme Sommersemester Zusammenfassung - Karsten Otto.
1. Einführung Lernziele: Auffrischen des Wissens aus Rechnernetze
2 Kommunikationssysteme
Netzwerk - Programmierung
6.1.2 Sequentielle Konsistenz
Einführung DI Harald Sander.
5.2 Gruppenkommunikation
Netzwerk - Programmierung
Netzwerk - Programmierung
Firewall.
Netzwerk - Programmierung
Den Bus erkunden ….
Ich brauche eine Web-Seite vom Server im Internet
Datenbanken online sowie offline verfügbar machen
Tutorstunde 10.
 Präsentation transkript:

vs Klassifizierung von Kommunikationsdiensten synonym:Nachrichtensystem/dienst(message service) Kommunikationssystem/dienst(communication service) Transportsystem/dienst(transport service) Grundsätzliche semantische Gemeinsamkeit: Senden/Empfangen einer Nachricht beinhaltet Kopieren – zwei (oder mehr) disjunkte Prozesse/Prozessoren A, B (C,...) kooperieren zum Zweck des Kopierens eines Wertes von A nach B (C,...) Kommunikationsdienste variieren im Hinblick auf [  2.3.1]Übertragungssemantik [  2.3.2]Adressierung der Kommunikationspartner [  2.3.3]Konfigurierung von Prozessen und Kanälen [  2.3.4]Disjunktives Warten

vs2.3 2 Pseudocode für Senden send MsgExpr [ to DestExpr ] Typ TTyp D MsgExpr:zu sendende Nachricht DestExpr:Ziel, das die Nachricht empfangen soll MsgVar:Variable, die die empfangene Nachricht aufnimmt SourceExpr:Quelle, von der die Nachricht empfangen werden soll - oder - SourceVar:Variable, die die Quelle der Nachricht aufnimmt recv MsgVar [ from SourceExpr | SourceVar ] Typ T Typ S und Empfangen:

vs2.3 3 Beispiel 1: ungepufferte Interprozeßkommunikation (z.B. CSP) P:... send "Hello "+"World" to Q... Q:... recv var from P... Beispiel 2: Ethernet Controller (ohne Adressen-Filterung) P:... send "Hello "+"World"... Q:... recv var... Effekt wie: var := "Hello World"  Rendezvous  Effekt wie: var := "Hello World", aber nur wenn Q mit recv wartet - sonst wirkungslos! wartet auf send 

vs Übertragungssemantik Pufferung, Empfangsfolge, Zuverlässigkeit, Flußsteuerung/Synchronisation  Pufferung:- keine - begrenzt - unbegrenzt  Empfangsfolge: - permutiertes Präfix der Sendefolge - Präfix der Sendefolge (reihenfolgetreu, FCFS; Puffertyp = Sequence ) - Strom (stream): Puffertyp = T = Sequence Achtung, Teil des Kommunikations- systems!

vs2.3 5  Zuverlässigkeit: Empfangsfolge der Nachrichten evtl. gefährdet durch - Duplizierung - Verlust - Verstümmelung: wird mittels Prüfcode erkannt und als Verlust betrachtet

vs2.3 6  Flußsteuerung und Synchronisation: Empfangen mit recv : blockierend (blocking) bis neue Nachricht vorliegt, nichtblockierend (non-blocking), d.h. wenn keine neue Nachricht: - Leeroperation, evtl. mit späterer Unterbrechung, wenn Nachricht eingetroffen (signal), oder - nochmaliges Lesen einer zuvor empfangenen Nachricht Senden mit send : blockierend bis Nachricht absendbar, nichtblockierend, d.h. - Leeroperation, evtl. mit Ausnahmemeldung, oder - Überschreiben einer zuvor gesendeten und noch nicht empfangenen Nachricht

vs2.3 7 Synchrone vs. asynchrone Übertragung: asynchrone Übertragung: send ist beendet, sobald der Wert von MsgExpr an das Nachrichtensystem übergeben ist synchrone Übertragung: send ist beendet, sobald die Nachricht durch recv übernommen wurde

vs Adressierung Beachte: Kommunikation ist nicht beschränkt auf das Szenario „2 miteinander verbundene Kommunikationspartner“ 4 Varianten:  ohne Adressierung  prozessbezogen  prozessgruppenbezogen  kanalbezogen

vs2.3 9  ohne Adressierung: send MsgExpr recv MsgVar [ from ProcVar ] produziert Nachrichtübernimmt Nachricht (evtl. mit Absender)(und gegebenenfalls Absender) ! Generische Operationen, z.B. mit Nachrichtentyp T = Sequence

vs  prozeßbezogen:(typischerweise auch generisch) send MsgExpr to ProcExpr recv MsgVar from ProcExpr send MsgExpr to ProcExpr recv MsgVar [ from ProcVar ] (Modell hier: jeder Prozeß verfügt über eigene mailbox) send MsgExpr [ to ProcVar ] recv MsgVar from ProcExpr (Umkehrung des obigen Modells – eher akademisch!)

vs  prozeßgruppenbezogen (group communication, auch „Rundsendung“, multicast): Es gibt einen Typ ProcessGroup, und Prozesse können einer Gruppe beitreten und sie verlassen:... group.enter();... ; group.leave();... Damit dann send msg to group recv var [ from procvar ]

vs  kanalbezogen/portbezogen Kanal als eigenständiges, explizit benennbares Pufferobjekt, meist unidirektional („Simplex-Kanal“): send MsgExpr to ChanExpr recv MsgVar from ChanExpr channel.send(msg);msg = channel.recv(); Wichtiger Begriff in Zusammenhang mit Kanälen: Port - mit verschiedenen Bedeutungen:

vs Port =formaler Kanalparameter eines Prozesses, häufig exklusiv entweder nur als Eingabe-Port für recv oder nur als Ausgabe-Port für send ( Beispiel: Unix-stdin/stdout über 0 bzw. 1) alternativ: Port =einem Prozeß fest zugeordneter Kanal: send msg1 to proc.port4recv var1 from port4 send msg2 to proc.port2recv var2 from port2 alternativ: Port =der „Eingang“ oder der „Ausgang“ eines Kanals, sozusagen „eine Hälfte“ eines Kanals

vs Konfigurierung bedeutet Einrichten von Prozessen und evtl. Kanälen sowie Binden, d.h. Aktualisierung formaler Parameter vom Typ Prozeß, Kanal, Port Statisches Binden: Hardware: durch „Strippenziehen“ zwischen Rechnern Software:mittels Konfigurationssprache, z.B. Unix Shell für Pipelines: who | sort | lpr Adressierung kanalbezogen:Kanal = pipe Ports = stdin, stdout

vs Dynamisches Binden: Prozesse besorgen die Konfigurierung selbst + jederzeit dynamische Umkonfigurierung möglich - Wiederverwendbarkeit in anderen Kontexten begrenzt Dynamische Erzeugung von Prozessen und Kanälen, dabei Binden durch geeignetes Initialisieren Namensdienste erlauben das Auffinden von bereits vorhandenen Prozess- bzw. Kanalobjekten

vs Disjunktives Warten Beispiel: clientserver for(;;) {..... recv request from client;..... send subrequest to server;..... recv subresult from server;..... send result to client;..... } blockierende recv behindern sich gegenseitig! Auftrag- nehmer Auftrag- geber Unter- auftrag- nehmer

vs Besser: nichtdeterministisch disjunktives Warten for(;;) {... select recv request from client; send subrequest to server; | recv subresult from server; send result to client; | timeout t do cleanup endselect;... } t = 0 wirkt wie ein otherwise/else-Konstrukt t =  wirkt wie fehlende Timeout-Klausel

vs Alternative: nebenläufige Ausführung (mit Threads o.ä.) cobegin for(;;) {... recv request from client;... send subrequest to server;... } || for(;;) {... recv subresult from server;... send result to client;... } coend ! Nachteil: Höhere Ressourcen-Anforderungen !