Skip to main content

Modulbeschreibung - Concurrent Programming

Nummer
conpr
ECTS 3.0
Anspruchsniveau advanced
Inhaltsübersicht Um die Leistung moderner Multicore-Rechner voll auszuschöpfen und um auf asynchrone Ereignisse reagieren zu können, ist nebenläufige Programmierung (Concurrent Programming) nötig.
Im Modul Concurrent Programming werden verschiedene Modelle eingeführt um die Probleme der Synchronisation und Koordination zu lösen: Locks & Conditions, Nichtblockierende Synchronisation (Lock-Free Programming), Message-Passing Modelle und Transactional Memory.
Themen:

  • Einführung in Thema Concurrency
  • Locks: Race Conditions, Mutual Exclusion & Deadlocks
  • Condition Synchronization: Wait / Notify & Interrupts
  • Java Memory Model
  • Sharing Objects: Immutability
  • Lock-Free Programming
  • Synchronizers
  • Tasks: Fork-Join, Futures, parallele und reaktive Streams
  • Message Passing: Aktoren
  • Software Transactional Memory
  • Testen nebenläufiger Programme


Lernziele Ziel dieses Moduls ist es, dass die Studierenden die Probleme der Synchronisation und Koordination beherrschen und korrekte nebenläufige Programme schreiben können.
Die Studierenden

  • kennen die wichtigsten theoretischen Aspekte der nebenläufigen Programmierung und können Situationen bezüglich Deadlock-Gefahr und korrekter Synchronisation einschätzen,
  • kennen verschiedene Modelle um Concurrency-Probleme zu lösen,
  • kennen gebräuchliche Werkzeuge für die nebenläufige Programmierung und können diese erfolgreich einsetzen,
  • können korrekte nebenläufige Programme schreiben.


Empfohlene Vorkenntnisse
  • Algorithmen & Datenstrukturen 2 (algd2)
Leistungsbewertung Erfahrungsnote und MSP schriftlich
Zusatzinformationen Im Unterricht werden die Programmiersprachen Java und Scala verwendet (in Scala wird eingeführt).
Diese Seite teilen: