Kapitel 5: Interprozesskommunikation

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Was wird vom Client über die connect()-Funktion an den Server gesendet?

  • Ein Datenpaket
  • Ein Fehlerprotokoll
  • Ein Befehl
  • Verbindungswunsch (correct)

Der Client muss die Socket-Variable nach der Kommunikation mit close() schließen.

False (B)

Welche Funktionen werden vom Client verwendet, um Daten zu senden und zu empfangen?

send() und recv()

Die meisten Heimcomputer verwenden das ______ Format, während Netzwerke das Big Endian Format nutzen.

<p>Little Endian</p> Signup and view all the answers

Ordnen Sie die folgenden Funktionen ihrer Verwendung zu:

<p>socket() = Initialisierung einer Socket-Variable connect() = Verbindungswunsch an den Server senden send() = Daten an den Server senden recv() = Daten vom Server empfangen</p> Signup and view all the answers

Welches Protokoll verwendet den Port 80?

<p>HTTP (A)</p> Signup and view all the answers

UDP garantiert die Zustellung von Nachrichten an den Empfänger.

<p>False (B)</p> Signup and view all the answers

Was ist ein 5-Tupel in der Netzwerkkommunikation?

<p>Quell-IP-Adresse, Ziel-IP-Adresse, Quell-Port, Ziel-Port, Protokoll</p> Signup and view all the answers

Das Protokoll HTTPS benutzt den Port __________.

<p>443</p> Signup and view all the answers

Ordne die Protokolle den entsprechenden Ausnahmeports zu:

<p>HTTP = 80 HTTPS = 443 FTP = 21 SMTP = 25</p> Signup and view all the answers

Welche der folgenden Aussagen beschreibt am besten Sockets?

<p>Sie ermöglichen bidirektionale Kommunikation zwischen zwei Endpunkten. (C)</p> Signup and view all the answers

Aktive Prozesse warten darauf, dass ein passiver Prozess eine Verbindung initiiert.

<p>False (B)</p> Signup and view all the answers

Nenne zwei Beispiele für Transportprotokolle.

<p>TCP, UDP</p> Signup and view all the answers

Welche Funktion wird verwendet, um Daten an den Client zu senden?

<p>send() (B)</p> Signup and view all the answers

Der Server wird nach dem Abschluss der Kommunikation automatisch geschlossen.

<p>False (B)</p> Signup and view all the answers

Welche Protokollfamilie wird im angegebenen C-Code verwendet?

<p>AF_INET</p> Signup and view all the answers

Die Funktion zum Verbinden des Servers mit dem Client ist die ______.

<p>connect()</p> Signup and view all the answers

Ordne jede Funktion der korrekten Beschreibung zu:

<p>socket() = Erstellt einen neuen Socket recv() = Empfängt Daten von einem Socket send() = Sendet Daten über einen Socket close() = Schließt einen offenen Socket</p> Signup and view all the answers

Welches dieser Elemente ist kein Bestandteil des Client-Codes?

<p>bind() (A)</p> Signup and view all the answers

Die Beispielimplementierung enthält eine Endlosschleife.

<p>True (A)</p> Signup and view all the answers

Wofür steht der Port 1237 im gegebenen C-Code?

<p>Er ist der Port, auf dem der Client mit dem Server verbindet.</p> Signup and view all the answers

Was ist ein Nachteil der impliziten breitbandigen Kommunikation?

<p>Busy-waiting ist notwendig, wenn das Betriebsmittel voll ist. (B)</p> Signup and view all the answers

Der gemeinsame Speicher für die implizite Kommunikation muss in einem der Adressräume der Teilnehmer liegen.

<p>False (B)</p> Signup and view all the answers

Nenne eine Verwendung von shared memory in einem Computersystem.

<p>Kommunikation zwischen Prozessen.</p> Signup and view all the answers

Bei expliziten Kommunikationsstrategien sendet ein Teilnehmer eine __________.

<p>Nachricht</p> Signup and view all the answers

Ordne die folgenden Begriffe den entsprechenden Beschreibungen zu:

<p>Register = Speicher für kurzfristige Daten Dateien = Langfristige Datenspeicherung Ringpuffer = Datenstruktur zur Sicherstellung der Kommunikation zwischen Produzenten und Konsumenten Queue = Warteschlange für Datenübertragungen</p> Signup and view all the answers

Welcher Bestandteil ist nicht notwendig in einer Nachricht, die bei expliziter Kommunikation gesendet wird?

<p>Position des Absenders (B)</p> Signup and view all the answers

Die Synchronisation in der impliziten Kommunikation ist nicht erforderlich.

<p>False (B)</p> Signup and view all the answers

Was wird benötigt, um Daten in einem gemeinsamen Betriebsmittel zu speichern?

<p>Aktiver Zugang aller Teilnehmer.</p> Signup and view all the answers

Was beschreibt die Richtung, in die ein Signal gesendet wird?

<p>Das Muster der Kommunikation (B)</p> Signup and view all the answers

Bei der unidirektionalen Kommunikation sind beide Prozesse gleichzeitig Sender und Empfänger.

<p>False (B)</p> Signup and view all the answers

Was passiert, nachdem ein Auftrag ausgeführt wurde?

<p>Der Empfänger schickt das Resultat zurück an den Sender.</p> Signup and view all the answers

Die ___-Methode wird vom Empfänger aufgerufen, um eine Nachricht zu empfangen.

<p>recv()</p> Signup and view all the answers

Ordne die Kommunikationsprinzipien den beschriebenen Methoden zu:

<p>Asynchrone Meldung = recv() wird blockiert Synchrone Meldung = send() versetzt Sender in empfangsbereiten Zustand Unidirektionale Kommunikation = Ein Sender und ein Empfänger Bidirektionale Kommunikation = Beide sind Sender und Empfänger</p> Signup and view all the answers

Wie verhält sich der Empfänger bei einer synchronen Meldung?

<p>Er blockiert nach Aufruf der recv()-Methode. (B)</p> Signup and view all the answers

Bei der asynchronen Meldung geschieht die Datenübertragung sofort.

<p>False (B)</p> Signup and view all the answers

Wie wird die Empfangsbestätigung dargestellt?

<p>Durch einen gestrichelten Pfeil.</p> Signup and view all the answers

Welche Aussage über den logischen Bytestrom im Puffer ist korrekt?

<p>Die Bytelänge kann beim recv()-Aufruf angegeben werden. (A)</p> Signup and view all the answers

Eine Pipe kann in beide Richtungen lesen und schreiben.

<p>False (B)</p> Signup and view all the answers

Was ist eine Named Pipe?

<p>Eine Named Pipe ist eine spezielle Pipe, die eine gemeinsame Datei als Puffer nutzt.</p> Signup and view all the answers

Ein Beispiel für einen Befehl, der eine Pipe verwendet, ist grep ___ ___ | wc -l.

<p>Dateiname Dateipfad</p> Signup and view all the answers

Ordnen Sie die folgenden Begriffe mit ihrer Bedeutung zu:

<p>send() = Daten in den Puffer schreiben recv() = Daten aus dem Puffer lesen pipe() = Eine Pipe erzeugen FIFO = Erstes rein, erstes raus</p> Signup and view all the answers

Welche der folgenden Aussagen ist über das FIFO-Prinzip korrekt?

<p>Daten werden hinten eingefügt und vorne entnommen. (B)</p> Signup and view all the answers

Der recv()-Aufruf berücksichtigt die ursprünglichen Datengrenzen.

<p>False (B)</p> Signup and view all the answers

Wie erfolgt die Datenübertragung in einer Pipe?

<p>Daten werden hinten eingefügt und vorne entnommen.</p> Signup and view all the answers

Flashcards

Implizite Kommunikation

Implizite Kommunikation nutzt einen gemeinsamen Speicherbereich, auf den alle Kommunikationspartner zugreifen können. Daten werden durch Schreiben und Lesen in diesen Bereich ausgetauscht. Die Kommunikation ist schnell zu initialisieren, da Adressräume nicht angepasst werden müssen und das Betriebssystem nicht involviert ist.

Nachteil der impliziten Kommunikation

Bei impliziter Kommunikation wartet der Empfänger aktiv (busy-waiting), bis Daten im gemeinsamen Speicherbereich verfügbar sind. Es gibt keine Signalisierung, ob Daten vorhanden sind. Dieser Ansatz eignet sich besser für die Kommunikation innerhalb einer Hardware-Einheit.

Explizite Kommunikation

Explizite Kommunikation erfolgt durch Senden einer Nachricht, die der Empfänger aktiv empfangen muss. Diese Form ist flexibler und funktioniert auch über Hardware-Grenzen hinweg.

Aufbau einer Nachricht bei expliziter Kommunikation

Eine Nachricht in der expliziten Kommunikation muss einen Header enthalten, der Informationen wie Sende- und Empfangs-Adresse, Größe der Daten und andere relevante Informationen enthält.

Signup and view all the flashcards

Spezialisierung der Nachrichtenstruktur (explizite Kommunikation)

Die explizite Kommunikation kann durch verschiedene Standards spezialisiert werden, um den Aufbau und die Interpretation der Nachricht zu vereinheitlichen.

Signup and view all the flashcards

Schmalbandiges Signal

Ein schmalbandiges Signal, das immer abgefangen werden muss und kleinere Datenmengen enthält.

Signup and view all the flashcards

Auftrag

Eine Anweisung, die der Empfänger ausführen soll.

Signup and view all the flashcards

Kommunikation zwischen Prozessen

Zwei oder mehr Prozesse, die Daten miteinander austauschen, um zu kommunizieren.

Signup and view all the flashcards

Unidirektionale Kommunikation

Wenn nur ein Prozess Daten sendet, der andere nur empfängt.

Signup and view all the flashcards

Bidirektionale Kommunikation

Wenn beide Prozesse gleichzeitig Daten senden und empfangen können.

Signup and view all the flashcards

Asynchrone Meldung

Der Sender schickt die Nachricht, aber der Empfänger muss sie aktiv abrufen.

Signup and view all the flashcards

Synchrone Meldung

Der Sender sendet die Nachricht und wartet auf eine Bestätigung.

Signup and view all the flashcards

Empfangsbereiter Zustand

Der Sender wird sofort nach dem Senden in den Empfangsmodus versetzt.

Signup and view all the flashcards

Logischer Bytestrom

Ein logischer Bytestrom ist eine Folge von Bytes, die unabhängig von der ursprünglichen Datengröße gelesen werden kann. Dies ermöglicht es, Daten in verschiedenen Formaten (z.B. als Character oder Long) aus dem Puffer zu lesen.

Signup and view all the flashcards

Byte-Puffer

Ein Byte-Puffer ist ein temporärer Speicherbereich, der Daten zwischen zwei Kommunikationspartnern speichert.

Signup and view all the flashcards

FIFO-Prinzip/Sendereihenfolge

Der Puffer funktioniert nach dem FIFO-Prinzip (First In, First Out). Das bedeutet, dass die Daten in der Reihenfolge empfangen werden, in der sie gesendet wurden, und auch in dieser Reihenfolge aus dem Puffer entnommen werden.

Signup and view all the flashcards

Pipe

Eine Pipe ist ein unidirektionaler Datenstrom zwischen zwei Kommunikationspartnern, der wie eine FIFO-Warteschlange funktioniert. Daten werden hinten in die Pipe geschrieben und vorne gelesen.

Signup and view all the flashcards

Erzeugen einer Pipe

Bevor Daten in eine Pipe geschrieben oder aus ihr gelesen werden können, muss sie mit dem Systemaufruf "pipe()" erzeugt werden.

Signup and view all the flashcards

Named Pipes

Named Pipes sind eine Art von Pipes, bei denen eine gemeinsame Datei als Puffer verwendet wird. So können verschiedene Prozesse auf den gleichen Datenstrom zugreifen.

Signup and view all the flashcards

grep & wc -l in der Linux-Kommandozeile

Der Befehl "grep" in der Linux-Kommandozeile kann genutzt werden, um Daten aus einer Datei in eine Pipe zu laden. Dadurch kann der Befehl "wc -l" dann die Anzahl der Wörter in der Datei aus der Pipe zählen.

Signup and view all the flashcards

socket() Funktion

Die Funktion ermöglicht die Initialisierung einer neuen Socketvariablen mit identischen Eigenschaften wie eine bestehende Serversocketvariablen.

Signup and view all the flashcards

connect() Funktion

Die Funktion ermöglicht es dem Client, einen Verbindungswunsch an den Server zu senden.

Signup and view all the flashcards

send() Funktion

Die Funktion ermöglicht die Übertragung von Daten vom Client zum Server.

Signup and view all the flashcards

recv() Funktion

Diese Funktion ermöglicht den Empfang von Daten vom Server.

Signup and view all the flashcards

close() Funktion

Die Funktion schliesst die Socketverbindung.

Signup and view all the flashcards

Was sind UDP-Verbindungen?

UDP-Verbindungen übertragen Nachrichten ohne eine feste Verbindung. Nachrichten werden in einen Puffer des Empfängers gesendet, ohne Gewähr für Zustellung oder Verarbeitung.

Signup and view all the flashcards

Wie zuverlässig ist UDP im Vergleich zu TCP?

UDP ist unzuverlässiger als TCP, da es keine Garantie für die Zustellung von Nachrichten gibt.

Signup and view all the flashcards

Was sind aktive Prozesse?

Aktive Prozesse initiieren die Kommunikation mit passiven Prozessen. Sie erhalten einen Port vom Betriebssystem, um eine Verbindung zu senden.

Signup and view all the flashcards

Was sind passive Prozesse?

Passive Prozesse warten passiv auf eine Verbindungsanfrage von einem aktiven Prozess.

Signup and view all the flashcards

Was ist ein 5-Tupel?

Ein 5-Tupel identifiziert eindeutig eine Kommunikationsbeziehung zwischen zwei Prozessen über das Internet basierend auf Ports.

Signup and view all the flashcards

Was sind die Bestandteile eines 5-Tupels?

Ein 5-Tupel besteht aus Quell-IP-Adresse, Ziel-IP-Adresse, Quell-Port, Ziel-Port und Protokoll.

Signup and view all the flashcards

Was sind Sockets?

Sockets ermöglichen eine stream-basierte Kommunikation zwischen zwei Endpunkten (Ports).

Signup and view all the flashcards

Wie aufgebaut sind Sockets?

Sockets bestehen aus zwei unabhängigen Streams: einem Input- und einem Output-Stream für jeden Kommunikationspartner.

Signup and view all the flashcards

String

Eine Sequenz von Zeichen, die zusammen einen Text bilden. Ein String ist ein Datentyp, der in vielen Programmiersprachen verwendet wird.

Signup and view all the flashcards

String-Puffer

Ein Puffer im Speicher, der dazu dient, Zeichenfolgen (Strings) zu speichern. Er dient als temporäre Speicher, bevor die Daten verarbeitet oder weitergeleitet werden.

Signup and view all the flashcards

String-Buffer lesen

Der Prozess, Daten aus einem String-Puffer zu lesen.

Signup and view all the flashcards

send()

Die Funktion, die Daten in einen String-Puffer schreibt.

Signup and view all the flashcards

recv()

Die Funktion, die Daten aus einem String-Puffer liest.

Signup and view all the flashcards

close()

Eine Funktion, die eine bestehende Verbindung zwischen Server und Client schließt.

Signup and view all the flashcards

TCP (Transmission Control Protocol)

Ein Netzwerkprotokoll, das den zuverlässigen Transport von Daten zwischen zwei Geräten ermöglicht.

Signup and view all the flashcards

Socket

Ein Netzwerkprotokoll, das die Kommunikation zwischen einem Server und mehreren Clients ermöglicht.

Signup and view all the flashcards

Study Notes

Kapitel 5: Interprozesskommunikation

  • Ziel: Kontrollierte Interaktion zwischen Prozessen, Austausch von Daten zwischen verschiedenen Prozessen oder Rechensystemen, Synchronisation notwendig.
  • Kommunikationsformen: Ereignisse, gemeinsamer Speicher, Nachrichten, Datenströme.
  • Kommunikationskanal: Verbindung zwischen Sender und Empfänger, Eigenschaften: Bandbreite, explizite/implizite Synchronität, Nachrichtenstrom, Auftragsmeldung.
  • Breitbandige Kommunikation: Große Datenmengen, vielfältige Kommunikationsmethoden, häufig kombiniert mit schmalbandiger Kommunikation (Signale).
  • Schmalbandige Kommunikation: Kleine Datenmengen, einfache Signale (ereignisbasiert), schnelle Kommunikation.
  • Beispielmechanismus: Signale: Senden von Signalen für die Information über Zustände (z.B. Mutex), asynchrone Kommunikation, Empfangender Prozess muss Signale aktiv abfangen bzw. mit Signalhandlern verarbeiten, Parameter wie signal(signalName, handlerMethode)
  • Implizit breitbandige Kommunikation: Gemeinsamer Speicher, Prozesse greifen auf gemeinsamen Speicher zu, keine Anpassungen der Adressräume nötig.
  • Beispielmechanismus: Shared Memory: Senden / Empfangen von Daten. Gemeinsamer Speicher, kein extra Kopieren der Daten in die Adressräume, weniger Overhead.
  • Explizit breitbandige Kommunikation: Nachrichten, Prozess sendet Nachricht, Empfänger empfängt Nachrichten. Übertragungsmethode, Header mit relevanten Infos, Payload (Daten).
  • Synchrone Kommunikation: Sender wartet auf Bestätigung vom Empfänger, beide sind abhängig von der Kommunikation.
  • Asynchrone Kommunikation: Sender schickt Nachricht, wartet nicht auf Empfänger, Sender unabhängig.
  • Kopplungsgrad: Synchron (stark abhängig), Asynchron (schwach abhängig), Synchroner Auftrag (Rendezvous), Asynchroner Auftrag.
  • Kommunikationsformen (Beispiele): Synchron, Asynchron (Nachrichten, Streams), Pipes, Sockets.
  • Sockets: Logische Verbindung zwischen zwei Endpunkten (Ports), Ports eindeutig zu Prozessen zugeordnet. Aktiver/Passiver Prozess. Sockets ermöglichen Kommunikation zwischen Prozessen auf verschiedenen Rechnern. 5-Tupel (Quell-IP-Adresse, Ziel-IP-Adresse, Quell-Port, Ziel-Port, Protokoll).
  • Netzarchitekturen (Beispiele): Client-Server, Peer-to-Peer.
  • Netzprogrammierung: Beispielcode (Server, Client), Socket-Erstellung, -Bindung, -Verbindung, Empfang / Senden von Daten.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Betriebssysteme: Synchronisation & Kommunikation
39 questions
Communication Interprocessus
45 questions

Communication Interprocessus

AchievableConnemara6614 avatar
AchievableConnemara6614
Use Quizgecko on...
Browser
Browser