Unternavigation / Sub Navigation

Standardverweise

Parallele Programmierung

Inhalte
  • Nutzen von Parallelität
  • Klärung der Begriffe Parallelität, Nebenläufigkeit, Programm, Prozess, Thread
  • Starten von Java-Threads
  • Probleme der Parallelität beim Zugriff auf gemeinsame Daten
  • Lösung der Parallelitätsprobleme durch gegenseitigen Ausschluss (Synchronized-Methoden und Synchronized-Blöcke in Java)
  • Wartebedingungen (wait – notify – notifyAll in Java)
  • Typische Synchronisations- und Kommunikationskonzepte in Betriebssystemen: Semaphore, Message Queues, Pipes
  • Klassische Synchronisationsprobleme: Philosophen-Problem, Leser-Schreiber-Problem
  • Typische Synchronisationsmuster
  • Prozessorzuteilungsstrategien
  • Prioritäten von Threads
  • Verklemmungen
  • Bezug zwischen Parallelität und grafischen Benutzeroberflächen
Lernziele Die Studierenden sollen wichtige Konzepte der Parallelität verstehen und beherrschen lernen. Die meisten Konzepte werden durch die parallelen Threads von Java illustriert. Damit werden die behandelten Inhalte für die Studierenden "anfassbar". Als Nebeneffekt werden die Java-Programmierkenntnisse der Studierenden weiter vertieft. Im Einzelnen sollen die Studierenden erläutern können, wozu Parallelität benötigt wird, welche Probleme beim Zugriff auf gemeinsame Daten auftreten und wie diese Probleme durch Synchronisationsmechanismen gelöst werden können. Sie sollen mit Java-Threads den Zugriff auf gemeinsame Daten unter Benutzung der Java-Konzepte synchronized, wait, notify und notifyAll beherrschen. Die Studierenden sollen mit diesen Konzepten in der Lage sein, selber wichtige Betriebssystemkonzepte wie Semaphore, Message Queues und Pipes sowie „klassische" Synchronisationsprobleme wie das Philosophenproblem und das Leser-Schreiber-Problem zu implementieren. Ferner sollen sie über Prozessorzuteilungsstrategien auch im Zusammenhang mit Prioritäten Bescheid wissen. Sie sollen das Problem der Verklemmung verstehen und Maßnahmen zur Vermeidung und Verhinderung von Verklemmungen anwenden können. Weiterhin sollen die Studierenden wissen, welche problematischen Wechselwirkungen zwischen Parallelität und grafischen Benutzeroberflächen bestehen und wie diese vermieden werden können.
Lehrform
Art und Umfang
Vorlesung (2 SWS)
Übung (2 SWS)
Seminar/Seminaristischer Unterricht
Labor
Projekt
Voraussetzungen für die Teilnahme Beherrschung des Lehrstoffes der Module „Objektorientierte Programmierung“ und „Datenstrukturen und Algorithmen“
Prüfungsvorleistung Regelmäßige Teilnahme an der Vorlesung
Regelmäßige Teilnahme an den Übungen
Regelmäßige Bearbeitung von Haus-/Laborarbeiten
Bestehen von Leistungsstandkontrollen
Prüfungsform
Art und Umfang
Schriftliche Prüfung (60 Minuten Bearbeitungszeit)
Mündliche Prüfung
Prüfung am PC
Hausarbeit/Projekt mit Kolloquium
Verwendbarkeit
Informatik PF WPF
Informatik - Digitale Medien und Spiele (Schwerpunkt Medien) PF WPF
Informatik - Digitale Medien und Spiele (Schwerpunkt Spiele) PF WPF
Informatik - Sichere und mobile Systeme PF WPF
Medizininformatik PF WPF
Angebot Sommersemester Wintersemester Unregelmäßig
Arbeitsaufwand
ECTS-Punkte Kontaktzeit Selbststudium
5 60 Stunden 90 Stunden
Lehrende(r) Prof. Dr. R. Oechsle
Modulverantwortliche(r) Prof. Dr. R. Oechsle
Änderungsdatum 14.07.2014
Christian Bettinger, 14. Dezember 2016