BIN304: Verteilte und parallele Programmierung
Lernpfad Informatisches Denken und Konzepte
BIN304: Verteilte und parallele Programmierung
Prof. Dr. Thomas Nitsche
- Prof. Dr. Thomas Nitsche
- Prof. Dr. Regina Pohle-Fröhlich
Bachelor Informatik
Informatik
Deutsch
Sommersemester
1 Semester
5 ECTS
Deutsche Notenskala 1-5
2 V | 1 Ü | 1 P | - S
Distributed and Parallel Programming
- BIN004: Einführung in die Programmierung: Kontrollstrukturen, Funktionen, Fehleranalyse.
- BIN005: Systemsoftware: Prozesse, Threads, Speicher, Betriebssystemgrundlagen.
- BIN007: Datennetze: Protokolle, Schichtenmodelle, Socket-Grundlagen.
WAS
Mit erfolgreichem Abschluss des Moduls sind die Studierenden in der Lage, Lösungen für nebenläufige, parallele und verteilte Probleme begründet zu entwickeln und hinsichtlich Synchronisation, Kommunikation, Laufzeit und Skalierbarkeit zu bewerten.
WOMIT
Die Studierenden erreichen dieses Lernergebnis, indem sie
- Problemstellungen in nebenläufige, parallel ausführbare oder verteilbare Teilaufgaben zerlegen,
- Abhängigkeiten, kritische Abschnitte und gemeinsame Ressourcen identifizieren,
- geeignete Synchronisationsverfahren auswählen und einsetzen,
- Kommunikations- und Koordinationsmechanismen für verteilte Programme verwenden,
- einfache Programme oder Mini-Projekte für Shared-Memory-, Message-Passing- und verteilte Szenarien realisieren,
- typische Effekte wie Race Conditions, Deadlocks, Latenz, Kommunikationsaufwand und Skalierbarkeit untersuchen,
- Laufzeit, Speedup, Effizienz und Ressourcenbedarf von Programmen und Algorithmen analytisch abschätzen,
- Architekturen und Programmiermodelle anhand fachlicher Anforderungen vergleichen.
WOZU
Die Studierenden nutzen diese Kompetenzen, um Architekturentscheidungen für leistungsfähige, skalierbare oder robuste Softwaresysteme fachlich begründen zu können. Dies ist besonders relevant für moderne Mehrkernsysteme, verteilte Anwendungen, Serverarchitekturen und datenintensive Verarbeitung.
- Grundbegriffe von Nebenläufigkeit, Parallelität und Verteilung
- Threads und Prozesse in Abgrenzung
- Shared Memory, Message Passing, SISD, SIMD und MIMD
- Laufzeit, Speedup, Effizienz und Ressourcenbedarf
- Zerlegung von Problemstellungen und Datenaufteilung
- Abhängigkeiten, Kommunikationsbedarf und Koordinationsbedarf
- Thread-basierte Ausführung, kritische Abschnitte, Semaphore und Locks
- Race Conditions und Deadlocks
- Nachrichtenbasierte Kommunikation und typische MPI-Programmiermuster
- Client-Server-Modell, Socket-Kommunikation, Peer-to-Peer und Protokollabläufe
- Latenz, Ausfallszenarien, Skalierungsgrenzen und Kommunikationsaufwand
- Vergleich paralleler und verteilter Architekturen anhand fachlicher Anforderungen
Bestehen des Praktikums.
Computergestützte Klausurarbeit (120 Minuten). Das Prüfungskonzept sieht die Bearbeitung am Rechner unter Aufsicht vor.
- Andrew S. Tanenbaum; Herbert Bos: Moderne Betriebssysteme. 5. Auflage, Pearson, 2025.
- Christoph Braun: Betriebssysteme kompakt. Springer Vieweg, 2025.
- Andrew S. Tanenbaum; Maarten van Steen: Distributed Systems. 4. Auflage, Pearson, 2023.
- Peter S. Pacheco: An Introduction to Parallel Programming. 2. Auflage, Morgan Kaufmann, 2021.