SoSe 2024













Submodulnummer Veranstaltungsform Name LP SWS / Prüfungsdauer
0087eA.1.6.1 Vorlesung Nebenläufige, parallele und verteilte Programmierung, LB 0 4.0
0087eA.1.6.2 Übung Nebenläufige, parallele und verteilte Programmierung, LB 0 2.0
0087eA.1.6.3 Modulprüfung Nebenläufige, parallele und verteilte Programmierung, LB 10 0 min
Qualifikationsziele: Die Studierenden kennen die grundlegenden Begriffe im Zusammenhang mit der nebenläufigen, parallelen und verteilten Programmierung und ordnen diese in das Themengebiet ein3. Sie wenden eine geeignete Modellierung für die Programmierung und Ausführung an und begründen6 auf Basis von geeigneten Modellen die Entscheidung für einen Programmieransatz und setzen diesen um. Sie können den Einfluss von nichtdeterministischem Verhal-ten erkennen und mit Hilfe geeigneter Mechanismen die Korrektheit des Programms sicherstellen und sind in der Lage, ihre und andere Programme auf Basis geeigneter Modellierung in Hinblick auf funktionale und nichtfunktio-nale Anforderungen zu analysieren und zu bewerten.

Inhalte: Die Studierenden erlernen die Grundlagen der deterministischen Programmausführung (deterministische vs. deter-minierte Programmausführung, Maschinen-, Ausführungs- und Programmiermodell) und setzen sich mit den Zielset-zungen der nebenläufigen, parallelen und verteilten Programmierung einschließlich nichtfunktionaler Eigenschaften auseinander. Sie erarbeiten sich die Fähigkeit der nebenläufigen Programmierung mit Prozessen auf Systemen mit gemeinsamem Speicher, sowie der parallelen Programmierung mit Threads auf Systemen mit gemeinsamem Spei-cher. Des Weiteren erlernen die Studierenden Konzepte wie den kritischen Abschnitt und erarbeiten sich Methoden zum Schutz des kritischen Abschnitts in Abhängigkeit vom Maschinenmodell (Schlossvariable [Lock], Semaphore, Monitor). Sie erweitern ihre Fähigkeiten auf den Bereich der parallelen Programmierung mit Nachrichtenaustausch auf Systemen ohne gemeinsamen Speicher. Sie verstehen die Herausforderungen von Verklemmungen und er-arbeiten sich entsprechende Lösungsansätze. Im Bereich der verteilten Programmierung erlernen Studierende, wie sie mit homogenen und heterogenen Systemen ohne gemeinsamen Speicher umgehen. Daneben erarbeiten sie sich die Konzepte der verteilten Programmierung (Fernaufrufe, Peer-to-Peer, Gruppenkommunikation) sowie Grundlagen der Infrastruktur für und des Managements von verteilten Anwendungen. Studierende üben den Ein-satz von Programmierwerkzeugen für die Entwicklung von nebenläufigen, parallelen und verteilten Programmen.