News
Beaver meets Boni!Geschrieben am 29.10.19 (letzte Γnderung am 30.10.19) von Holger Hermanns Liebe Studierende, wir haben uns entschlossen, insgesamt sieben Gruppen einen Bonus für deren jeweilige Bearbeitung des praktischen Projektes zuzuerkennen. Dies sind
Liebe Studierende, wir haben uns entschlossen, insgesamt sieben Gruppen einen Bonus für deren jeweilige Bearbeitung des praktischen Projektes zuzuerkennen. Dies sind
Herzlichen Glückwunsch an all diese Gruppen! Außerdem sind wir sehr glücklich darüber, dass unsere Vorlesung Nebenläufige Programmierung mit dem Busy Beaver als beste Grundvorlesung im Sommer 2019 ausgezeichnet wurde. Vielen Dank dafür, denn die Basis ist Ihr Feedback in der Evaluation! Viele Grüße, das Team der Nebenläufigen Programmierung |
Ergebnisse der KlausureinsichtGeschrieben am 25.10.19 von Felix Freiberger Liebe Studierende, die Ergebnisse der Klausureinsicht sind jetzt im dCMS eingetragen. Viele Grüße, |
Nachklausuren: KlausureinsichtGeschrieben am 16.10.19 von Maximilian KΓΆhl Liebe Studierende, Sie können am Mittwoch, den 23.10., von 9:30 bis 10:30 Uhr Einsicht in die Klausurkorrektur nehmen. Die Einsicht findet in Raum 206 in E1.1 statt. Bitte denken Sie an Ihren Studierendenausweis. Viele Grüße, |
Ergebnisse der NachklausurenGeschrieben am 13.10.19 von Felix Freiberger Liebe Studierende, wir haben die Bewertung der Nachklausuren nun abgeschlossen. Sie finden Ihre Punktzahlen auf Ihrer persönlichen Statusseite. Die Bestehensgrenzen liegen für Nachklausur T bei 31,5 Punkten, für Nachklausur A bei 32 Punkten. Mit diesen Punktzahlen haben Sie bereits… Weiterlesen Liebe Studierende, wir haben die Bewertung der Nachklausuren nun abgeschlossen. Sie finden Ihre Punktzahlen auf Ihrer persönlichen Statusseite. Die Bestehensgrenzen liegen für Nachklausur T bei 31,5 Punkten, für Nachklausur A bei 32 Punkten. Mit diesen Punktzahlen haben Sie bereits bestanden. Aus der Klausurpunktzahl ergibt sich jeweils auch Ihre Note. Sie können Ihre Note wie folgt bestimmen:
Ihre Endnote für das Modul „Nebenläufige Programmierung“ ergibt sich aus dem arithmetischen Mittel der jeweils besten Modulnoten für Module T und A durch Runden auf herkömmliche Notenstufen und Subtrahieren eventueller Boni. Diese Note wird auch auf Ihrer persönlichen Statusseite angezeigt. Beachten Sie jedoch, dass über die Projekt-Boni noch nicht abschließend entschieden ist. Wir arbeiten dran. Sie können in die Korrekturen Einsicht nehmen. Den Termin dafür werden wir rechtzeitig ankündigen. Viele Grüße, |
NachklausurenGeschrieben am 08.10.19 von Felix Freiberger Liebe Studierende, am morgigen Mittwoch, den 09.10. schreiben wir wie angekündigt die Nachklausuren. Die Klausuren werden je 60 Minuten dauern. Im dCMS finden Sie nun auf ihrer persönlichen… Weiterlesen Liebe Studierende, am morgigen Mittwoch, den 09.10. schreiben wir wie angekündigt die Nachklausuren. Die Klausuren werden je 60 Minuten dauern. Im dCMS finden Sie nun auf ihrer persönlichen Statusseite Ihre Sitzplätze. Falls Sie glauben, einen Platz zu Unrecht nicht zugewiesen bekommen zu haben, kontaktieren Sie uns bitte umgehend. Hilfsmittel sind nicht zugelassen. Finden Sie sich bitte rechtzeitig um 09:45 für Nachklausur T / um 11:00 für Nachklausur A vor Ihrem Hörsaal ein, sodass Sie genügend Zeit haben, Ihren Platz zu finden. Viele Grüße, |
Anmeldung zu den NachklausurenGeschrieben am 30.09.19 von Felix Freiberger Liebe Studierende, am Mittwoch, dem 09.10., schreiben wir wie bereits angekündigt die Nachklausuren T und A. Die Nachklausuren werden zwischen 09:00 und 13:00 stattfinden, eine genaue Zeit werden wir rechtzeitig bekannt geben. Für diese Nachklausuren müssen Sie sich anmelden. Es sind zwei… Weiterlesen Liebe Studierende, am Mittwoch, dem 09.10., schreiben wir wie bereits angekündigt die Nachklausuren T und A. Die Nachklausuren werden zwischen 09:00 und 13:00 stattfinden, eine genaue Zeit werden wir rechtzeitig bekannt geben. Für diese Nachklausuren müssen Sie sich anmelden. Es sind zwei Anmeldungen erforderlich:
Die Frist für die Anmeldung im LSF ist der 02.10., für die Anmeldung im dCMS endet die Frist am 03.10. Viele Grüße, |
Ergebnisse der ProjektabnahmenGeschrieben am 09.08.19 von Felix Freiberger Liebe Studierende, die Ergebnisse der Projektabnahmen sind nun auf Ihrer persönlichen Statusseite aufgeführt. Falls Sie die Abnahme bestanden haben, sehen Sie dort nun auch Ihre vorläufige Endnote des Moduls Nebenläufige Programmierung. Falls Sie die Abnahme nicht bestanden haben (und die… Weiterlesen Liebe Studierende, die Ergebnisse der Projektabnahmen sind nun auf Ihrer persönlichen Statusseite aufgeführt. Falls Sie die Abnahme bestanden haben, sehen Sie dort nun auch Ihre vorläufige Endnote des Moduls Nebenläufige Programmierung. Falls Sie die Abnahme nicht bestanden haben (und die Voraussetzungen für eine Nacharbeit erfüllen), müssen Sie nacharbeiten. Wir erwarten dazu bis Dienstag, den 01.10.2019 in Ihrem Repository:
Informieren Sie Ihren Tutor, sobald Sie die Nacharbeit abgegeben haben. Senden Sie Ihrem Tutor dabei auch ein zusätzliches kleines Dokument, in dem Sie die Änderungen im Vergleich zur ursprünglichen Abgabe auflisten und kurz erklären. Wir werden die Nacharbeit dann bereits vor Ende der Abgabefrist bewerten und Ihnen Feedback geben. Wir werden die Nacharbeit ohne weitere Abnahme nur an Hand dieser Abgabe bewerten. Achten Sie deshalb unbedingt darauf, dass Sie alle in der Abnahme aufgefundenen Probleme beheben und die Änderungen so erklären, dass wir die Korrektheit Ihrer Abgabe nachvollziehen können. Bei Fragen dazu, welche Probleme Sie beheben müssen, wenden Sie sich direkt an Ihren Tutor. Wir empfehlen Ihnen dringend, die Nacharbeit zügig zu bearbeiten und abzugeben. Wenden Sie sich rechtzeitig an Ihren Tutor, falls Sie Fragen zur Nacharbeit haben. Viele Grüße, |
Ergebnisse von Klausur AGeschrieben am 07.08.19 von Felix Freiberger Liebe Studierende, wir haben die Bewertung der Hauptklausur A nun abgeschlossen. Sie finden Ihre Punktzahl auf Ihrer persönlichen Statusseite. Die Bestehensgrenze liegt bei 27 Punkten, mit dieser Punktzahl haben Sie bereits bestanden. Aus der Klausurpunktzahl ergibt sich auch Ihre Note für… Weiterlesen Liebe Studierende, wir haben die Bewertung der Hauptklausur A nun abgeschlossen. Sie finden Ihre Punktzahl auf Ihrer persönlichen Statusseite. Die Bestehensgrenze liegt bei 27 Punkten, mit dieser Punktzahl haben Sie bereits bestanden. Aus der Klausurpunktzahl ergibt sich auch Ihre Note für das Modulelement A. Sie können Ihre Note wie folgt bestimmen:
Bitte beachten Sie, dass die Note des Modulelements A von uns nicht gerundet wird. Ihre Endnote für das Modul „Nebenläufige Programmierung“ ergibt sich aus dem arithmetischen Mittel der beiden Modulnoten durch Runden auf herkömmliche Notenstufen und Subtrahieren eines eventuellen Bonus. Sie können in die Korrektur Einsicht nehmen. Den Termin dafür werden wir rechtzeitig ankündigen. Viele Grüße, |
Dies ist eine Pflichtvorlesung im Bachelor Informatik an der Universität des Saarlandes.
Sie wurde ausgezeichnet mit dem Preis des Fakultätentages Informatik 2013.
Nebenläufige Programmierung
Multi-Cores und andere parallele Architekturen (zum Beispiel Graphikprozessoren) finden sich mittlerweile auf jedem Schreibtisch. Solche Systeme effizient programmieren zu können, ist eine große Herausforderung. Glaubt man den Vorhersagen der Hardware-Hersteller, wird dies schon bald zum Alltag eines jeden Informatikers gehören.
Leider ist das Programmieren von solchen nebenläufigen Systemen extrem schwierig. Dies hat fundamentale und praktische Gründe.
Ziel dieser Vorlesung ist, die Studenten mit der Theorie und Praxis des nebenläufigen Programmierens vertraut zu machen. Eine große Aufgabe, ohne Frage.
Publikum
Diese Vorlesung richtet sich in erster Linie an Studierende im Bachelor Informatik. Sie ist für diese ein Pflichtmodul, und 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 (vorläufig)
Mo 14:15 - 16:00 | Vorlesung | Gebäude E1 3, Hörsaal 002 |
Di 10:15 - 12:00 | Vorlesung | Gebäude E1 3, Hörsaal 002 |
Mi 08:15 - 10:00 | Tutorien | |
Mi 10:15 - 12:00 | Tutorien |
Achtung: Nicht in jeder Woche finden alle Termine statt. Nutzen Sie den Kalender für einen genauen Plan.
Die erste Vorlesung findet am Montag, dem 8. April 2019 statt.
Klausuren
- Klausur T: 21.05.2019, 10:15 Uhr
- Klausur A: 06.08.2019, 10:15 Uhr
- Nachklausur T: 09.10.2019, Vormittag
- Nachklausur A: 09.10.2019, Vormittag
Registrierung
Die Registrierung für den Kurs ist nach der ersten Vorlesung unter Anmeldung möglich! Details zum Übungsbetrieb erfahren Sie in der ersten Vorlesung.
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.
Inhalt
- Nebenläufigkeit als Konzept
- Potentieller Parallelismus
- Tatsächlicher Parallelismus
- Konzeptioneller Parallelismus
- Nebenläufigkeit in der Praxis
- Objektorientierung
- Betriebssysteme
- Multi-core Prozessoren, Coprozessoren
- Programmierte Parallelität
- Verteilte Systeme (Client-Server, Peer-to-Peer, Datenbanken, Internet)
- Die Schwierigkeit von Nebenläufigkeit
- Ressourcenkonflikte
- Fairness
- Gegenseitiger Ausschluss
- Verklemmung (Deadlock)
- gegenseitige Blockaden (Livelock)
- Verhungern (Starvation)
- Grundlagen der Nebenläufigkeit
- Sequentielle Prozesse
- Zustände, Ereignisse und Transitionen
- Transitionssysteme
- Beobachtbares Verhalten
- Determinismus vs. Nicht-Determinismus
- Algebren und Operatoren
- CCS: Der Kalkül kommunizierender Prozesse
- Konstruktion von Prozessen: Sequenz, Auswahl, Rekursion
- Nebenläufigkeit
- Interaktion
- Strukturelle operationelle Semantik
- Gleichheit von Beobachtungen
- Implementierungsrelationen
- CCS mit Datentransfer
- Programmieren von Nebenläufigkeit
- pseuCo
- Message Passing in pseuCo und Go
- Shared Memory in pseuCo und Java
- Monitore und Semaphoren
- Shared Objects und Threads in Java
- Shared Objects und Threads als Transitionssysteme
- Analyse und Programmierunterstützung
- Erkennung von Verklemmungen
- Zusicherung von Sicherheit und Lebendigkeit
- Model-Basiertes Design von Nebenläufigkeit
- Software-Architekturen für Nebenläufigkeit