Modulcode: | WI01 |
Englische Bezeichnung: | |
Modulverantwortliche(r): | Prof. Dr. Willem-Paul de Roever |
Turnus: | unregelmäßig (SS08) |
Präsenzzeiten: | 4V 2Ü |
ECTS: | 7 |
Workload: | 210 Std. |
Dauer: | ein Semester |
Modulkategorien: | WI (Sonstige) |
Lehrsprache: | Deutsch |
Voraussetzungen: |
Der Fokus des Moduls liegt in der Einführung in die Konzepte und Techniken nebenläufiger Programmierung wie Semaphore, Monitore, verteilte Programmierung, Remote Procedure Invocation, Rendez-Vous, Pipes. Die Ausdrückbarkeit dieser Konzepte und ihre Anwendung in Java, Ada, CSP, und Linda wird geübt.
In diesem Modul werden die Studierenden mit den grundlegenden Techniken der nebenläufigen Programmierung vertraut gemacht und erlernen die erste Schritte bei der Anwendung dieser Techniken für die Softwareerstellung.
Der Kurs legt den Schwerpunkt auf Konzepte und Techniken nebenläufiger Programmierung im Allgemeinen, auf ihre unterschiedlichen Anwendungsfelder und verschiedenen zugrundeliegenden Modelle und gliedert sich in zwei Teile: Nebenläufigkeit mit gemeinsamem Speicher und verteilte Programmierung. In beiden Teilen befasst sich die Vorlesung auch mit der Implementierung dieser Konzepte, welche ausführlich geuebt wird in den dazugehörigen Übungen.
Stichworte: Prozesse und Threads, nebenläufige Ausführung, gemeinsame Objekte und gegenseitiger Ausschluss, Monitore und bedingte Ausführung, Verklemmung, Sicherheit und Lebendigkeitseigenschaften, modellbasierter Entwurf, Kommunikation durch Nachrichtenaustausch, Architekturen für Nebenläufigkeit, Pipelining, Cachekohärenz.
Systemorientierte Informatik III
Eine Midsemestertest und eine Abschlussprüfung am Ende der Vorlesung
G. R. Andrews. Foundations of Multithreaded, Parallel, and Distributed Programming. Addison-Wesley, 2000.
J. Magee and J. Kramer. Concurrency: State Models and Java Programs. Wiley, 2006.
F. Schneider. On Concurrent Programming. Graduate Texts in Computer Science. Springer-Verlag, 1997.