Modul (6 Credits)

Concurrency

Name im Diploma Supplement Concurrency
Verantwortlich Prof. Dr. Klaus Echtle
Voraus­setzungen Siehe Prüfungsordnung.
Workload 180 Stunden studentischer Workload gesamt, davon:
  • Präsenzzeit: 60 Stunden
  • Vorbereitung, Nachbereitung: 90 Stunden
  • Prüfungsvorbereitung: 30 Stunden
Dauer Das Modul erstreckt sich über 1 Semester.
Qualifikations­ziele

Die Studierenden

  • haben ein Verständnis für die Modellierung nebenläufiger Systeme
  • kennen unterschiedliche Spezifikationstechniken für zustandsbasierte Systeme (kommunizierende endliche Automaten und Ablaufmodelle)
  • können Modelle erstellen und hinsichtlich ihrer Korrektheitseigenschaften formal untersuchen
  • beherrschen Grundprinzip und Werkzeuge zum Model Checking für synchrone zeitbehaftete Automatenetze
  • können die Modellierung auf Probleme des nebenläufigen Rechnens anwenden
  • kennen die Synchronisationskonzepte des nebenläufigen Rechnens
  • sind in der Lage, effiziente nebenläufige System zu konstruieren und die Vor- und Nachteile verschiedener Lösungsansätze vergleichend zu bewerten
  • sind in der Lage, das nicht deterministische Verhalten von nebenläufigen Systemen durch Ablaufmodelle darzustellen und formal zu spezifizieren
  • können Eigenschaften von Modellen formal beschreiben und diese durch modellgestützte Verfahren verifizieren oder falsifizieren
  • beherrschen den Umgang mit Werkzeugen zur Erstellung und Behandlung (Animation, Verifikation, Model Checking) von Modellen nebenläufiger Systeme können praktische Aufgabenstellungen hinsichtlich Nebenläufigkeit analysieren und einer Implementierung zugänglich machen
  • können nebenläufige Threads für die bekannten „klassischen“ Modelle programmieren und darüber hinaus auch Threads zur Implementierung beliebiger Synchronisationsalgorithmen einsetzen
Prüfungs­modalitäten

Zum Modul erfolgt eine modulbezogene Prüfung in der Gestalt einer Klausur über die gemeinsamen Ziele von Vorlesung und Übung (in der Regel: 90-120 Minuten). Vom Dozierenden wird zu Beginn der Veranstaltung festgelegt, ob die erfolgreiche Teilnahme Prüfungsvorleistung oder aber Bestandteil der Prüfung ist. Ist letzteres der Fall, so bilden die Teilleistungen zusammen mit der Abschlussprüfung eine zusammengesetzte Prüfung mit einer Endnote.

Verwendung in Studiengängen
  • AI-SE Bachelor 2017 > Kernstudium > Pflichtbereich II: Informatik > 2.-3. FS, Pflicht
  • LA Info GyGe (Drittfach) 2007 > Erweiterungsprüfung > Pflichtmodule Theorie und Modellierung > 2. FS, Pflicht
  • LA Info GyGe Master 2014 > Wahlpflichtbereich Informatik > 1.-3. FS, Wahlpflicht
  • Mathe Bachelor 2013 > Informatik > Liste 1 > 1.-6. FS, Wahlpflicht
  • TechMathe Bachelor > Wahlpflichtbereich > Profil "Software Systems Engineering" > 1.-6. FS, Wahlpflicht
Bestandteile

Vorlesung (3 Credits)

Concurrency

Name im Diploma SupplementConcurrency
Anbieter Lehrstuhl für Verlässlichkeit von Rechensystemen (http://dc.icb.uni-due.de/)
Lehrperson Prof. Dr. Klaus Echtle
PD Dr.-Ing. Irene Eusgeld
N. N.
SWS 2 Sprache deutsch
Turnus Sommersemester maximale Hörerschaft unbeschränkt

empfohlenes Vorwissen

Elementare Java-Programmierung

Lehrinhalte

In der Vorlesung werden Concurrency-Konzepte sowohl unter Modellierungs- wie auch unter Programmierungsgesichtspunkten behandelt. Es werden grundlegenden Konzepte der Nebenläufigkeit, die in der Hardware, im Betriebssystem, in Programmen, in verteilten Systemen und in Rechnernetzen eine wichtige Rolle spielen, in einheitlicher Weise behandelt. Themen sind:

  • Einführung in die Modellierung mit Automaten und Transitionssystemen, Eigenschaften von Automaten, Erweiterungen von Automaten (Variabel, Spontanübergänge, Nicht-Determinismus)
  • Kommunizierende Endliche Automaten: synchrone und asynchrone Automatenkommunikation, Verhaltensspezifikation mit Automaten, Weg/Zeit-Diagramme, Prinzipe der Protokollspezifikation und der automatenbasierten Erreichbarkeitsanalyse, Algorithmen zur Erreichbarkeitsanalyse, erschöpfende und partielle Exploration;
  • Synchrone und zeitbehaftete Automaten, Einführung in Timed Computational Tree Logic und Model Checking mit UPPAAL
  • Beispiel aus den Bereichen Concurrent Execution, Mutual Execution, Deadlock, Safety and Liveness Properties. 
  • Programmmodell, Ausführungsmodell, Ablaufmodell, Schreibkonflikt, Datenabhängigkeit, Verklemmung
  • Parallelisierung in der Hardware, Parallelisierung im Grundsystem, Parallelisierung auf Programmebene, Operatoren zur Synchronisation und Kommunikation
  • Implementierung nebenläufiger Systeme in Java, insbesondere Threads in Java, Interaktion zwischen Threads, Monitore, Wartebedingungen in Programmen, Vermeidung von Verklemmung, Grundmuster des nebenläufigen Rechnens für bestimmte Anwendungen, Echtzeitprozesse, Programmierstile für Echtzeitsysteme (zeitbasierte und ereignisorientierte Ansätze)

Literaturangaben

  • B. Müller-Clostermann: Folienskript zu "Concurrency - Teil I"; siehe Homepage (als pdf-Dokument erhältlich)
  • K. Echtle: Folienskript zu "Concurrency - Teil II"; siehe Homepage (als pdf-Dokument erhältlich)
  • J. Magee, J. Kramer: Concurrency – State models and Java programs; Wiley, 1999
  • P. Ziesche: Nebenläufige & Verteilte Programmierung, W3L-Verlag, 2005
  • A. Tanenbaum: Moderne Betriebssysteme; Hanser-Verlag
  • R. G. Hertwich, G. Hommel: Nebenläufige Programme; Springer-Verlag

Weiteres Begleitmaterial und Skripte, jeweils aktuelle Hinweise finden Sie auf der Homepage der Dozenten.

Hörerschaft

  • AI-SE Bachelor 2017 > Kernstudium > Pflichtbereich II: Informatik > Modul "Concurrency" 2.-3. FS, Pflicht
  • LA Info GyGe (Drittfach) 2007 > Erweiterungsprüfung > Pflichtmodule Theorie und Modellierung > Modul "Concurrency" 2. FS, Pflicht
  • LA Info GyGe Master 2014 > Wahlpflichtbereich Informatik > Modul "Concurrency" 1.-3. FS, Wahlpflicht
  • Mathe Bachelor 2013 > Informatik > Liste 1 > Modul "Concurrency" 1.-6. FS, Wahlpflicht
  • TechMathe Bachelor > Wahlpflichtbereich > Profil "Software Systems Engineering" > Modul "Concurrency" 1.-6. FS, Wahlpflicht
Vorlesung: Concurrency (WIWI‑C1100)

Übung (3 Credits)

Concurrency

Name im Diploma SupplementConcurrency
Anbieter Lehrstuhl für Verlässlichkeit von Rechensystemen (http://dc.icb.uni-due.de/)
Lehrperson Prof. Dr. Klaus Echtle
PD Dr.-Ing. Irene Eusgeld
N. N.
SWS 2 Sprache deutsch
Turnus Sommersemester maximale Hörerschaft unbeschränkt

empfohlenes Vorwissen

elementare Java-Programmierung

Lehrinhalte

  • Grundkonzepte der Nebenläufigkeit
  • Modellierung von Nebenläufigkeit mit gekoppelten Automaten
  • Synchrone und asynchrone Kopplung, zeitbehaftete Automaten
  • Verhaltensspezifikation und Model Checking mit Computational Tree Logic
  • Modellierung durch Ablaufmodelle
  • Identifikation von Schreib- und Lesekonflikten sowie Datenabhängigkeiten
  • Modellierung von Kommunikations- und Synchronisationsmustern
  • Erweiterung der Programmierfähigkeit von sequentiellen auf nebenläufige Programme anhand des Thread-Konzepts von Java und dem mit synchronized-Methoden verbundenen Monitorkonzept
  • darauf aufbauend: Implementierung von höheren Konzepten der Kommunikation und Synchronisation (wie sie teilweise in Java schon vordefiniert sind, z. B. Locking)
  • Abschließend wird ein Programmrahmen für eine allgemeine Synchronisationsmethode erstellt

Literaturangaben

siehe Vorlesung

Hörerschaft

  • AI-SE Bachelor 2017 > Kernstudium > Pflichtbereich II: Informatik > Modul "Concurrency" 2.-3. FS, Pflicht
  • LA Info GyGe (Drittfach) 2007 > Erweiterungsprüfung > Pflichtmodule Theorie und Modellierung > Modul "Concurrency" 2. FS, Pflicht
  • LA Info GyGe Master 2014 > Wahlpflichtbereich Informatik > Modul "Concurrency" 1.-3. FS, Wahlpflicht
  • Mathe Bachelor 2013 > Informatik > Liste 1 > Modul "Concurrency" 1.-6. FS, Wahlpflicht
  • TechMathe Bachelor > Wahlpflichtbereich > Profil "Software Systems Engineering" > Modul "Concurrency" 1.-6. FS, Wahlpflicht
Übung: Concurrency (WIWI‑C0373)
WIWI‑M0795 - Modul: Concurrency