Inhalte:

Programmieren und Synchronisieren von gleichzeitig laufenden Prozessen, die auf gemeinsame Ressourcen zugreifen oder über Nachrichtenaustausch interagieren.

  • Nichtsequentielle Programme und Prozesse in ihren verschiedenen Ausprägungen, Nichtdeterminismus, Determinierung
  • Synchronisationsmechanismen: Sperren, Monitore, Wachen, Ereignisse, Semaphore
  • Nichtsequentielle Programmausführung und Objektorientierung
  • Ablaufsteuerung, Auswahlstrategien, Prioritäten, Umgang mit und Vermeidung von Verklemmung
  • Koroutinen, Implementierung, Mehrprozessorsysteme
  • Interaktion über Nachrichten
  • Programmieren und Synchronisieren von gleichzeitig laufenden Prozessen, die über Nachrichtenaustausch interagieren
  • Fernaufruftechniken
  • Client-Server, Peer-to-Peer
  • Parallelrechnen im Netz
  • Koordinierungssprachen
  • Verarbeitung auf dem Server und auf dem Client, Mobilität
  • Middleware, strukturierte Kommunikation, statische und dynamische Schnittstellen
  • Ereignisbasierte und strombasierte Verarbeitung
  • Sicherheit von Anwendungen im Netzwerk
  • Ausblick auf nichtfunktionale Eigenschaften (Zeit, Speicher, Dienstgüte) 

Literatur:

Concurrent Programming: Algorithms, Principles, and Foundations.
Springer-Verlag Berlin Heidelberg 2013.
Michel Raynal.

Principles of Concurrent and Distributed Programming
Second Edition. Addison-Wesley-Verlag 2006. 
M. Ben-Ari.

Distributed Algorithms 
The MIT Press. Cambridge, Massachusetts. 2013
Wan Fokkink.