Universität Jena, Fakultät für Mathematik & Informatik,
Institut für Informatik
Lehrstuhl für Programmiersprachen und Compiler
Vorlesung
Nebenläufige Programmierung
SS 2007
Threads und Tasks
Vorlesung : Mi 14.15 - 15.45 CZ3 SR 125 J.Winkler Beginn 2007.Apr.18
Do 16.15 - 17.45 CZ3 SR 130 J.Winkler
Übung : Fr 12.15 - 13.45 CZ3 SR 227 J.Winkler Beginn 2007.Apr.27 <============
Einschreibung im CAJ
Abschlussklausur: Mittwoch 25. Juli 2007 10.00 CZ3 SR 315
Schein-/Prüfungskriterien
|AUB| >= 10 AND
(Exists TM <= AUB: |TM| >= 10 AND (All i in TM: EPB(i) >= 0,25*BPB(i))) AND
(Sum i in AUB: EPB(i)) >= 0,5*(Sum i in MUB: BPB(i)) AND
EPK >= 0,5*BPK
mit: MUB = Menge der ausgegebenen Aufgabenblätter
AUB = Menge der abgegebenen Aufgabenblätter
EPB = erreichte Punktzahl eines Aufgabenblattes
BPB = erreichbare Punktzahl eines Aufgabenblattes
EPK = erreichte Punktzahl in der Klausur
BPK = erreichbare Punktzahl in der Klausur
klass. Schein : Aufgabenblätter + Klausur/Abschl.-Gespräch
klass. Prüfung : Klausur / mündl. Prüfung
Modulprüfung : Aufgabenblätter + Klausur/mündl. Prüfung
Nebenläufige Programmierung befaßt sich mit Programmen, in welchen einzelne
Teile zeitlich überlappend ("gleichzeitig") ausgeführt werden. Dabei können die
Teilprogramme innerhalb eines Rechners oder auch auf verschiedenen Rechnern ablaufen.
Diese gleichzeitige Ausführung mehrerer Programmteile kann zu Situationen
führen, in welchen gleichzeitig auf gemeinsame Daten zugegriffen werden soll.
Solche Zugriffe müssen koordiniert werden, damit das Programm nur konsistente
Zustände annimmt (s. z.B. Stromausfall in den USA in 2003).
Um dies alles zu bewerkstelligen sind in einer Programmiersprache spezielle
Sprachelemente erforderlich.
In der Vorlesung werden die grundlegenden Phänomene der Nebenläufigkeit und die
nebenläufige Programmierung in Java und in Ada behandelt.
Da das Verstehen nebenläufiger Abläufe ungewohnter und auch schwieriger ist als
das sequentieller Abläufe, ist es sinnvoll, sich während des Studiums mit
diesem Paradigma grundsätzlich vertraut zu machen. Insbesondere, da
Nebenläufigkeit in vielen Anwendungen in zunehmendem Maße vorkommt, weil
auch einfache PCs mittlerweile über mehrere Prozessoren (in Form von
Prozessorkernen) verfügen.
Es kann ein Übungsschein erworben werden.
Inhaltsübersicht
(Modulkatalog)
Literatur
- Grundkonzepte: sequentielles Programm, nebenläufiges Programm, Parallelität,
verteiltes System, Echtzeitabläufe, Beobachtbarkeit, Semantik
- Determinismus / Nichtdeterminismus
- Akteure: Prozeß, Task, Thread, aktives Objekt
- Exklusiver Zugriff zu Objekten
- Nachrichtenaustausch
- Nebenläufigkeit in Ada
- Nebenläufigkeit in Java
- Implementierungsaspekte
- Nebenläufigkeit in neuen High-Performance-Sprachen (Chapel, Fortress, X10)
Aufgabenblätter s. CAJ
Institut |
Lehrstuhl |
Kommentare |
Jürgen Winkler 2007Jun18, 2019Mar21 |
Carsten Freining 2004Jul02.