Kommunikation in verteilten Anwendungen

kvanC, iCompetence, FHNW, Dozent: Simon Marcin, Unterrichtssprache: Englisch

kvanC, iCompetence, FHNW, Dozent: Simon Marcin, Unterrichtssprache: Englisch

Dinah Bolli

Dinah Bolli

Kartei Details

Karten 62
Sprache Deutsch
Kategorie Informatik
Stufe Universität
Erstellt / Aktualisiert 13.01.2022 / 25.05.2024
Weblink
https://card2brain.ch/box/20220113_web_engineering
Einbinden
<iframe src="https://card2brain.ch/box/20220113_web_engineering/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

IPC bedeutet?

Inter-Process Communication

IPC für was?

Methoden, um unter Prozessen zu kommunizieren:

– Daten austauschen

– Synchronisation und Notification zwischen Prozessen und/ oder Thread

IPC Methoden aufzählen

– Files

– Signals

– Mutex

– Pipes

– Queues

– Sockets (kommt im Kapitel TCP/IP sockets

Concurrency

  • Tasks laufen zur selben Zeit auf einer CPU nach ihrer Priorität. 
  • Verschiedene Aufgaben (Threads oder Prozesse) werden vom Betriebssystem unterbrochen.
  • Der Zeitpunkt von Task Switches kann nicht kontrolliert werden.

Parallelism

Tasks laufen zur selben Zeit auf verschiedenen CPUs (Kernen)

Definition Prozess

Instanz von einem derzeit ausgeführten Programm, das Daten enthält. Ein Prozess enthält mindestens ein oder mehrere Threads, jeder Thread mit seinem Stack und Register.

Definition Thread

Kleinstmögliche Processing-Einheit, die vom Betriebssystem erstellt wird. 
Ein Thread existiert immer in einem Prozess.

Definition Single Process/Thread

Die Ausführungsreihenfolge ist bei einem single process/thread noch vorhersagbar.

Definition Multi-Threaded

Ein Prozess besitzt mehrere Threads. Die Daten sind shared. Die Threads haben jeweils ihren eigenen Stack.

Erstellung Prozess vs. Erstellung Thread?

Ein neuer Prozess zu erstellen ist eine langsame und «heavyweight» Operation auf dem Betriebssystem. Mit shared Data zu arbeiten ist daher komplexer.

Im Vergleich zum Erstellen neuer Prozesse ist das Erstellen von neuen Threads eine „lightweight“ und schnelle Operation im Betriebssystem.

Race Condition Definition und Kontext

Eine Race-Condition entsteht dann, wenn zwei oder mehrere Threads / Prozesse auf dieselbe shared Ressource zugreifen; diese zur gleichen Zeit verändern. 

IPC Methode: Files

Gleichzeitiges Lesen/Schreiben nicht möglich, es wird eine Art Synchronisierung benötigt.

Sofern das Filesystem shared ist, kann diese Methode auch für inter-node Kommunikation verwendet werden.

IPC Methode: Signals

Kleine Nachricht, die einen Prozess benachrichtigt, dass etwas passiert ist.

IPC Methode: Was passiert bei einem Signal?

Wenn ein Signal zu einem Prozess geschickt wird, stoppt das OS den normalen Programm-Flow und führt zuerst die Signalmethode aus und führt dann das Programm normal weiter.

IPC Methode: Mutex

Mutex = mutual exclusion = gegenseitiger Ausschluss, Schloss. 

Hat 2 Zustände; locked oder unlocked (Boolean)

Wird verwendet, um eine shared Resource zu kontrollieren/synchronisieren.

IPC Methode: Mutex: Was passiert wenn der Mutex nie freigegeben wird?

Der Prozess kann verhungern oder in einem Deadlock enden.

IPC Methode: Mutex: "Critical section"?

Der Zeitrahmen zwischen dem Schliessen und Entschliessen.

IPC Methode: Pipe

Datenstruktur vom OS, um einen Stream von Daten zu senden oder erhalten.

Wird der Prozess geschlossen, stirbt die Pipe.

IPC Methode: Queue

Queues werden genutzt, um Nachrichten zwischhen Threads/Prozessen zu schicken.

Sie bieten ein asynchrones Kommunikationsprotokoll und lagern die Nachrichten bis ein Prozess die Nachricht abholt.

FIFO: Elemente nur am Anfang eingefügt und am Ende entfernt bzw. gelesen werden. Elemente, die als erstes in die Queue eingereiht werden, werden auch wieder als erstes daraus entfernt. 

Die Grösse der Nachricht sowie die Menge an Items in der Queue sind limitiert.

OSI Model: Layer 1

Physical

OSI Model: Layer 1, Characteristics

Actual physical connection between devices.

Responsible for the movement of individual bits between hosts.

OSI Model: Layer 2

Data Link

OSI Model: Layer 2, Characteristics

Moves frames from one node to the next node by their physical addresses (MAC).

Can implement Error and Flow Control.

OSI Model: Layer 3

Network

OSI Model: Layer 3, Characteristics

Responsible for source to destination delivery of a packet over a (or multiple) network(s) → IP (Internet Protocol) / ICMP

Provides routing mechanisms to transmit data over independent networks.

Adds logical address of sender and receiver.

OSI Model: Layer 4

Transport

OSI Model: Layer 4, Characteristics

Delivers entire messages by segmenting and numbering them.

Transmission is either connectionless or connection oriented.

Service point addressing is used to deliver the message to the correct process on the node.

OSI Model: Layer 5

Session

OSI Model: Layer 5, Characteristics

Opening, maintaining and closing the communication a session.

OSI Model: Layer 6

Presentation

OSI Model: Layer 6, Characteristics

En-/Decodes the data to match sender and receiver format.

Can add data encryption and/or data compression.

OSI Model: Layer 7

Application

OSI Model: Layer 7, Characteristics

Provides user interfaces and support for services like email, file transfers.

IP stands for?

Internet Protocol

IP: OSI Layer?

Layer 3 Network

IP: Characteristics?

Unreliable and connectionless, IP does not keep track of any routing information.

IP: TTL means?

Time to live: remaining routing hops: How many hops can the datagram go until it’s discarded?

IP: How much overhead do IP datagrams have?

min. 20 bytes

IP: IPv4 Address

32-bit number divided into 4 parts of each 8 bit digits.

Up to 65'000 concurrent connections can be opened to one IP address.

IP: IPv4 Netmask: Prefix

Network number