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.