Grundlagen und Architektur verteilter Systeme

Multi-Threading

Thread und Prozess

  • Aus Effizienzgründen sind Threads Prozessen vorzuziehen
  • Beim Kontextwechsel muss sonst der ganze PCB statt nur dem TCB zwischengespeichert werden

Namenskonvention für VS

  • Aktive Klassen haben immer was mit Threads zu tun -> UML Strich am rand
  • Passive Klassen sind die die von Threads genutzt werden

Synchronisation

Erzeuger-Verbraucher-Problem

Thread-Pools

Zeitliche Synchronisation

Weitere Synchronisierungsmechanismen

ToDo

  • Synchronized Collections
  • Concurrent Collections
  • Exchanger
  • Semaphor

Übungsbeispiel

  • Aktive Klasse XY die kontinuierlich Druckaufträge aufgibt
  • 4 Drucker (repräsentiert durch aktive Klasse), solanger der an nem Auftrag druckt ist er nicht verfügbar
  • Aktive Klassen stellen Aufträge ein, Drucker nehmen sie raus
  • Auftragscenter als Queue

Sockets

Wiederholung

Sockets in Java

Möglichkeiten der Server-Implementierungen

  • Thread Pool: bei schnellen ressourcenabfragen, datenbank insert o.ä.
  • Eigener Thread: bei z.b. nem chat

RPC und gRPC

RPC

Todo

Was ist ein stub

gRPC

Webservices

Implementierung

Microservices

Todo

Video im ELO anschauen:

  • Wie baut man ein Image
  • Wie startet man einen Container
  • Wie sieht ein Dockerfile aus