Nebenläufige Programmierung – SS15

Aktuelles

  • Zum Kurs-Management-System für diese Veranstaltung geht es HIER
  • Die erste Vorlesung findet am Montag, dem 20.04.2015 statt.

Kurzbeschreibung

Multi-Cores und andere parallele Architekturen finden sich mittlerweile auf jedem Schreibtisch. Korrekte Programme für solche Systeme zu entwerfen, ist eine große Herausforderung. Glaubt man den Vorhersagen der Hardware-Hersteller, wird dies schon bald zum Alltag jedes/jeder Informatiker/Informatikerin gehören.

Das Ziel dieser Vorlesung ist es, die Studenten mit der Theorie und Praxis des nebenläufigen Programmierens vertraut zu machen. Die Vorlesung wurde ausgezeichnet mit dem Preis des Fakultätentages Informatik 2013.

Zielgruppe

Dies ist eine Pflichtvorlesung im Bachelor Informatik an der Universität des Saarlandes. Sie ist laut Studienplan im 4. Fachsemester angesiedelt, kann jedoch bereits ab dem 2. Semester belegt werden. Einzige Vorraussetzung ist die erfolgreiche Teilnahme an der Vorlesung Programmierung 1.

Wöchentliche Termine

Mo 14:15 – 16:00 Vorlesung HS002 Geb. E1 3
Di 10:15 – 12:00 Vorlesung HS002 Geb. E1 3
Mi 10:15 – 10:30 Freiversuche HS002 Geb. E1 3
Mi 10:35 – 12:05 Tutorien SR014, SR015, SR016 Geb. E1 3
Mi 12:15 – 12:30 Freiversuche HS1 Geb. E2 5
Mi 12:35 – 14:05 Tutorien SR 1 (U.37), SR 3 (U.11) Geb. E2 5, SR7 (203) Geb. E2 4

 

 

 

 

 

 

Achtung: Jede Woche finden zwei der drei Termine statt. Nutzen Sie den Kalender für einen genauen Plan. Die Midterm-Klausur findet an einem Montag als dritter Termin einer Woche statt.

Registrierung

Die Registrierung für den Kurs ist unter Anmeldung bis Samstag, den 25. April möglich! Details zum Übungsbetrieb erfahren Sie in der ersten Vorlesung.

Office Hours / Einsichten

Unsere Office Hours finden vorraussichtlich jeweils am Montag, und Dienstag von 12:30 bis 14 Uhr in SR 015 in Geb. E1 3 statt. Donnerstags kann im selben Raum von 12:30 bis 14:00 Uhr Einsicht in die korrigierten Freiversuche und Aufgaben genommen werden

Literatur

Zu den Vorlesungsmaterialien, die den Teilnehmern zur Verfügung gestellt werden, gehört ein Skript, welches den Inhalt der Vorlesung umfassend darstellt. Weiterführende Literatur findet sich hier:  http://www.infomath-bib.de/tmp/vorlesungen/info-basic_nebenlaeufig.html

Inhalt (Auswahl)

1. Grundlagen der Nebenläufigkeit

  • Nebenläufige Systeme als Prozesse
    • Beschriftete Transitionssysteme
    • Nichtdeterminismus
  • CCS
    • Sequentielles CCS
    • Nebenläufigkeit, Interaktion und Synchronisation
    • Restriktion
    • Daten und Parameter
  • Beobachtbares Verhalten
    • Äquivalenzrelationen
    • Kongruenzrelationen
    • Bisimulationen
    • Beobachtungskongruenz

2. Konzepte des Nebenläufigen Programmierens

  • Nebenläufige Programmierung in der Praxis
    • pseuCo: Eine Programmiersprache für nebenläufige Agenten
    • pseuCo und CCS
  • Kooperation durch Nachrichten
    • Ungepufferte und gepufferte Kommunikation
    • Auswahl von Nachrichten (select/case)
    • Nachrichtenkommunikation in der Praxis
    • Go
  • Kooperation durch gemeinsame Ressourcen
    • Gegenseitiger Ausschluss – Mutexe
    • Monitore
    • Shared Memory vs. Message Passing
  • Nebenläufiges Programmieren in Java
    • Threads in Java
    • Signalisierung und Koordination