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

Literatur:

  • Principles of Concurrent and Distributed Programming. M. Ben-Ari. Addison-Wesley. 
  • Distributed Systems. Concepts and Design. Fifth Edition. George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair. Pearson.