Inhalte: Programmieren und synchronisieren von gleichzeitig laufenden Prozessen, die auf gemeinsamen Speicher 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, Sicherheitsaspekte von Anwendungen im Netzwerk
- Programmieren und synchronisieren von gleichzeitig laufenden Prozessen, die über Nachrichtenaustausch interagieren.
- Fernaufruftechniken
- Client-Server, Peer-to-Peer
- Parallelrechnen im Netz
- Koordinierungssprachen, Orchestrierung, Choreographie
- 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, Absicherung der Protokolle
- Ausblick auf nichtfunktionale Eigenschaften (Zeit, Speicher, Dienstgüte)
Kenntnisse des Moduls „Algorithmen, Datenstrukturen und Datenabstraktion“ werden vorausgesetzt. Im Selbststudium erwerben die Studentinnen und Studenten Kenntnisse über Betriebssysteme, die im Zusammenhang mit nichtsequentieller Programmierung stehen (etwa Pipelining, Cache, Speicherhierarchie, Unterbrechungsbehandlung, Puffer, Prozesse/Threads)