Verteilte Systeme Flashcards

1
Q

Welche Kommunikationsarten besitzen Prozesse?

A

Synchrone Kommunikation

Asynchrone Kommunikation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was bedeutet Synchrone Kommunikation?

Nenne 2 Beispiele

A

Beide Prozesse müssen zueinander Passende Programmstellen erreicht haben. Gegebenenfalls muss ein Prozess warten.
Beispiele:
Entfernter Prozedur- bzw. Methodenaufruf
Spezielle Kommunikationskonstrukte z.B. Entries in Ada

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was bedeutet asynchrone Kommunikation?

Nenne zwei Beispiele.

A

Prozesse führen Aktionen zur Kommunikation aus und arbeiten danach weiter, ohne auf Antwort zu warten.
Beispiele:
Kommunikation über gemeinsamen Speicher
Kommunikation über Nachrichten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Im Internet werden Daten in Paketen endlicher Länge übertragen, während zur Kommunikation zwischen Prozessen jedoch häufig ein kontinuierlicher Datenstrom angemessener ist. Welches Konzept bietet eine Abstraktion von den technischen Verwaltungsaufgaben in der Kommunikation über das Netzwerk, sodass diese Diskrepanz überwunden wird?

A

(vgl. Kapitel 7.2.1 im Kurstext) Durch Sockets, die im Rahmen von Berkeley Unix entwickelt wurden, wird eine Abstraktionsschicht zur Kommunikation zwischen Prozessen bereitgestellt, die den Programmierer von folgenden Aufgaben befreit:

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Im Internet werden Daten in Paketen endlicher Länge übertragen, während zur Kommunikation zwischen Prozessen jedoch häufig ein kontinuierlicher Datenstrom angemessener ist. Welches Konzept bietet eine Abstraktion von den technischen Verwaltungsaufgaben in der Kommunikation über das Netzwerk, sodass diese Diskrepanz überwunden wird?
Welche Tätigkeiten fallen hier an?

A

 Zerteilen der Daten in Pakete;
 Verpacken der Daten in Pakete mit Adress- und Verwaltungsinformationen sowie dem Dateninhalt
 Auspacken der ankommenden Pakete (insbes. Entfernen der Adress- und Verwaltungsinformationen);
 Ordnen der Pakete in der richtigen Reihenfolge;
 Anfordern von fehlenden (im unzuverlässigen Internet ggf. verloren gegangenen) Paketen;
 Zusammensetzen der Daten zu einem kontinuierlichen Datenstrom.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Der Kurstext nennt vier verschiedene Kommunikationsmittel für verteilte Systeme, wovon zwei primär zur asynchronen und zwei primär zur synchronen Kommunikation eingesetzt werden. Nennen Sie diese und ordnen Sie sie der asynchronen bzw. synchronen Kommunikation zu.

A

Asynchrone Kommunikation:
• Kommunikation über gemeinsamen Speicher
• Kommunikation über Nachrichten
Synchrone Kommunikation:
• Entfernter Prozedur- bzw. Methodenaufruf
• Spezielle Kommunikationskonstrukte

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Nennen Sie zwei Gründe, warum sich das objektorientierte Grundmodell besonders gut für die Programmierung verteilter Systeme eignet.

A
  • Objekte fassen Daten und Operationen zu Einheiten mit klar definierten Schnittstellen zusammen; Objekte bzw. Klassen bilden demnach weitgehend unabhängige Programmteile, die sich auf verschiedene Prozesse bzw. Rechner verteilen lassen.
  • Kommunikation zwischen Objekten über Nachrichten ist integraler Bestandteil des objektorientierten Grundmodells, sodass bereits alle wesentlichen Sprachmittel für die Kommunikation im Rahmen verteilter Systeme zur Verfügung stehen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Welche Kommunikationsarten von Prozessen kennen Sie? Was zeichnet sie jeweils aus?

A

Eine synchrone Kommunikation zweier Prozesse kann nur dann stattfinden, wenn beide Prozesse zueinander passende Programmstellen erreicht haben. Gegebenenfalls muss der eine Prozess zunächst auf den anderen warten.
Bei asynchroner Kommunikation führen die Prozesse die Aktionen zur Kommunikation aus und arbeiten danach weiter, ohne auf eine Antwort zu warten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Nennen Sie vier Kommunikationsmittel und ordnen Sie sie den Kommunikationsarten von oben zu.

A

Kommunikationsmittel zur asynchronen Kommunikation:
 Kommunikation über gemeinsamen Speicher
 Kommunikation über Nachrichten
Kommunikationsmittel zur synchronen Kommunikation:
 Entfernter Prozedur- bzw. Methodenaufruf
 Spezielle Kommunikationskonstrukte (z.B. Entries in der Sprache Ada)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wahr oder Falsch
Bei einem verteilten System handelt es sich um eine Menge von Prozessen, die in einem gemeinsamen Adressraum Berechnungen durchführen.

A

Falsch

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wahr oder Falsch

Unter synchroner Kommunikation versteht man den gleichzeitigen Versand von Nachrichten durch zwei unabhängige Prozesse

A

Falsch

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wahr oder Falsch
Unter asynchroner Kommunikation versteht man den Versand einer Nachricht und das unmittelbare Fortfahren der eigenen Berechnungen, ohne auf eine Reaktion des Empfängers zu warten.

A

Wahr

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wahr oder Falsch

Da Objekte Daten und Operationen vereinen, sind sie für eine Verteilung über verschiedene Systeme gut geeignet.

A

Wahr

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wahr oder Falsch

Bei einem Port handelt es sich um einen Rechner im Netzwerk

A

Falsch

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wahr oder Falsch

Ein Server sollte in nur einem einzigen Thread implementiert werden, um Verklemmungen zu vermeiden.

A

Falsch

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wahr oder Falsch
Bei RMI handelt es sich um einen Mechanismus, der es erlaubt, Methoden von Objekten aufzurufen, die auf einem anderen Rechner zur Verfügung gestellt werden.

A

Wahr

17
Q

Wahr oder Falsch
In Java werden bei einem entfernten Methodenaufruf durch aktuelle Parameter referenzierte Objekte vom Rechner des aufrufenden Objektes zum Rechner des aufgerufenen Objektes verschoben.

A

Falsch

18
Q

Wahr oder Falsch

In Java repräsentiert ein Skeleton-Objekt ein aufrufendes Objekt auf der Seite des aufgerufenen Objektes.

A

Wahr

19
Q

Wahr oder Falsch

In Java reicht es aus, den RMI-URL zu kennen, um auf dem so identifizierten entfernten Objekt eine Methode aufzurufen.

A

Falsch

20
Q

Wahr oder Falsch

In Java reicht es aus, den RMI-URL zu kennen, um auf dem so identifizierten entfernten Objekt eine Methode aufzurufen.

A

Falsch

21
Q

Erzeugen eines Sockets

A

java. net.ServerSocket serverSocket = new java.net.ServerSocket(port);
java. net.Socket socket = new java.net.Socket(ip,port);

22
Q

Server - Aktzeptieren einer Anfrage

A

java.net.Socket socket = serverSocket.accept(); // blockiert, bis sich ein Client angemeldet hat

23
Q

Lesen / Schreiben aus / in einen Socket

A

socket.getOutputStream().write(“Hallo!”.getBytes());

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));

24
Q

Schließen eines Sockets

A

socket.close();

25
Q

Was wird im Kurs 1618 unter einem Verteilten System verstanden?

A

Kriterien verteilter Systeme:
Eine Menge von lose gekoppelten Prozessen d.h. von Prozessen, die unabhängig voneinander Berechnungen ausführen und miteinander kommunizieren können.
Jeder Prozess arbeitet dabei ein eigenes Programm in einem eigenen Adressraum ab.
Insbesondere arbeiten die Prozesse im Allgemeinen parallel.
Typischerweise sind verteilte Systeme räumlich, d.h. auf mehrere Rechner verteilt.

26
Q

Sockets bilden eine Abstraktionsschicht zur Kommunikation zwischen verteilten Prozessen, die den Programmierer von einigen nicht trivialen Tätigkeiten befreit. Welche Tätigkeiten sind das?

A

Zerteilen der Daten
Einpacken der Daten in Pakete mit Adressinformation, Verwaltungsinformation und Paketinhalt
Auspacken der eintreffenden Pakete
Reihenfolge der eintreffenden Pakete sicherstellen
fehlende Pakete nachfordern
Pakete am Zielort wieder zusammensetzen.

27
Q

Wie sieht das grundlegende Muster zur Realisierung eines einfachen Servers aus? Geben Sie das passende Programmfragment (Pseudocode oder Java) an oder beschreiben Sie das Muster textuell.

A
ServerSocket serversocket = new ServerSocket(Portnummer);
while (true) { 
// Öffnen der Ein- und Ausgabeströme zum Client 
Socket socket = serversocket.accept(); 
// Kommunikation zwischen Server und Client 
socket.close();
} 

Textuelle Beschreibung des Musters:
Der Server-Prozess schließt sich an den gewünschten Port an. Dies geschieht in Java mittels des Konstruktors der Klasse ServerSocket. Dann betritt er üblicherweise eine Endlosschleife. Jeder Durchlauf durch die Schleife entspricht der Bedienung eines Clients. In der Schleife wartet der Server, dass sich ein Client an den Port anschließt. Das Warten und das nachfolgende Herstellen der Socket-Verbindung zum Client wird in Java von der Methode accept geleistet. Ihr Aufruf blockiert, bis sich ein Client angeschlossen hat, und liefert dann das Socket-Objekt zurück, das die Verbindung zum Client repräsentiert. Das Socket-Objekt stellt Methoden zur Verfügung, um die Ein- und Ausgabeströme zum Client zu öffnen.