ALP 4: Unterschied zwischen den Versionen
Patzi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Patzi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 28: | Zeile 28: | ||
[[Category:Informatik|ALP 4]] | [[Category:Informatik|ALP 4]] | ||
[[Kategorie:Studienmodule | [[Kategorie:Studienmodule/Informatik]] |
Version vom 3. April 2012, 20:51 Uhr
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
- 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.
- 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
Klausuren
- 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