ALP 4
Dieser Artikel / Abschnitt ist veraltet! Diese Seite bezieht sich auf das Modul "Nichsequentielle Programmierung" nach der Studien- und Prüfungsordnung vom 8.2.2007.
Alle Seiten, in denen diese Vorlage verwendet wird, werden automatisch in die Kategorie:Veraltet einsortiert.
Nichtsequentielle Programmierung befasst sich mit den Datenstrukturen und Algorithmen zur Synchronisation nebenläufiger Prozesse, die auf gemeinsame Daten zugreifen oder miteinander kommunizieren. Die Vorlesung stellt die grundlegenden Konzepte und Methoden der Programmierung nebenläufiger Systeme im Zusammenhang dar. Sie setzt den (auf sequentielle Programmierung beschränkten) Zyklus Algorithmen und Programmierung I-III fort und ist Voraussetzung für verschiedene Veranstaltungen des Hauptstudiums wie z.B. Netzprogrammierung, Betriebssysteme, Verteilte Systeme und Parallele Algorithmen.
Stoff[Bearbeiten]
- Programmlogik, warum Testen nicht ausreichend ist, und wie man nicht-sequentielle Programme korrekt beweist.
- Synchronisationsalgorithmen mit atomaren und anderen Registern. Machinennahe Verfahren, die insbesondere auf modernen Prozessoren interessant sind.
- Barrieren zum Synchronisieren mehrerer Prozesse.
- Semaphore: Ein einfacher abstrakter Datentyp zur Synchronisation.
- Monitore: Strukturierter und Thread-sicherer Umgang mit gemeinsam genutzen Resourcen.
- Erkennen und Vermeiden von Verklemmungen (Deadlocks).
- Ablaufplanung (Scheduling)
- Die Vererbungsanomalie: Warum Nebenläufigkeit und Objekt-Orientierung nicht gut zusammen passen.
- Aktive Objekte: Ein Entwurfsmuster
- Verteilte Systeme und Nachrichtenaustausch: Eine Einführung.
Übungen[Bearbeiten]
Klausuren[Bearbeiten]
- Klausur vom 22. Juli 2009
- Musterlösung zur Klausur vom 22. Juli 2009
- Klausur vom 5. Oktober 2009
- Musterlösung zur Klausur vom 5. Oktober 2009
- Musterlösung zur Klausur vom 14. Juli 2010
- Musterlösung zur Klausur vom 20. Juli 2011