• Keine Ergebnisse gefunden

Organisatorischesund¨Uberblick Nebenl¨aufigenProgrammierung

N/A
N/A
Protected

Academic year: 2021

Aktie "Organisatorischesund¨Uberblick Nebenl¨aufigenProgrammierung"

Copied!
16
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prinzipien, Modelle und Algorithmen der

Nebenl¨aufigen Programmierung

Wintersemester 2019/20

Organisatorisches und ¨ Uberblick

Prof. Dr. David Sabel

LFE Theoretische Informatik

(2)

Beteiligte

Prof. Dr. David Sabel

Raum L107, Oettingenstr. 67 David Tellenbach

Aufgabenbl¨atter Korrektur

Email-Verteiler an alle Organisatoren:

concurrent-ws1920@tcs.ifi.lmu.de

(3)

Termine

Vorlesung

Donnerstag, 12-14, A 125 (Hauptgeb¨aude)

Freitag, 10-12 Raum 3232, (Leopoldstr. 13) ca. alle 2 Wochen Vorl¨aufiger Plan f¨ur die Freitage:

18.10.2019 25.10.2019 08.11.2019 22.11.2019

06.12.2019 10.01.2020 24.01.2020 07.02.2020 Ubung¨

Dienstags 16-18, Lehrturm V005 (Prof. Huber-Pl. 2) Besprechung von Aufgaben

(4)

Webseiten / Material

Durchklicken aufwww.tcs.ifi.lmu.de Anmelden im uni2work!

Aktuelle und organisatorische Informationen

Unterlagen zur Veranstaltung: Skript, Folien, Aufgaben Referenzen auf B¨ucher, Webseiten, Programmiersprachen usw.

(5)

Aufgabenbl¨ atter

Ungef¨ahr: Jede Woche ein Aufgabenblatt Abgabe Dienstags bis 16 Uhr

1. Aufgabenblatt wird nicht abgegeben / korrigiert Abgabe und Korrektur ¨uber uni2work

pro Blatt ca. jeweils 2 bepunktete Aufgaben mit 2 Punkten pro Aufgabe

Bonus f¨ur die Pr¨ufung

(6)

H¨ orerkreis und Pr¨ ufung

Modul Algorithmik und Komplexit¨at im Masterstudiengang Informatik 6 ECTS, 3V+2 ¨U

Modulpr¨ufung

M¨undliche Pr¨ufung oder Klausur

”Bonus“ bei erfolgreicher Bearbeitung der ¨Ubungsaufgaben:

- 100% erfolgreiche Bearbeitung aller Aufgaben

= 10% aller Klausurpunkte als Bonus - Anrechnung ansonsten linear

- Bonuspunkte helfen nicht beim Bestehen

bei m¨undlicher Pr¨ufung entsprechende W¨urdigung (ab 50% erfolgreiche Bearbeitung eine Teilnote besser,

bei ca 90% erfolgreiche Bearbeitung zwei Teilnoten besser)

(7)

Inhalt (Planung) (1)

Synchronisationvon Prozessen und Mutual-Exclusion Mutual-Exclusion = wechselseitiger Ausschluss

Unter verschiedenen Annahmen der Speicheroperationen:

Zun¨achst: Nur atomares read und write Mutual-Exclusion bei2 Prozessen:

Algorithmen von Dekker, Peterson, Kessels Mutual-Exclusion bein Prozessen:

Lamports Algorithmus, Bakery-Algorithmus

(8)

Inhalt (Planung) (2)

St¨arkere Speicherobjekte

St¨arke Speicheroperationen und Mutual-Exclusion:

Test-and-set Bits, RMW-Objekte, Compare-and-Swap Objekte Qualitative Klassifzierung der Speicheroperationen

Consensus und die Consensuszahl

(9)

Inhalt (Planung) (3)

Gebr¨auchliche Konstrukte der Nebenl¨aufigen Programmierung:

Semaphoren Monitore Kan¨ale Tuple Spaces

Dabei: L¨osungklassischer Problememit den Primitiven:

Das Problem der Speisenden Philosophen Erzeuger / Verbraucher Probleme

Sleeping Barbers Problem Cigarette Smoker’s Problem Programmierung von Barrieren Das Readers & Writers Problem

(10)

Inhalt (Planung) (4)

Nebenl¨aufiger Zugriff aufmehrere Ressourcen Deadlocks

Deadlock-Vermeidung (Zwei-Phasen-Sperrprotokoll) Deadlock-Verhinderung (Bankiers Algorithmus) Transactional Memory (allgemein)

(11)

Inhalt (Planung) (5)

Nebenl¨aufige und parallele Programmierung in Haskell (evtl. auch weitere Programmiersprachen)

Parallel Haskell Concurrent Haskell

Software Transactional Memory in Haskell

(12)

Inhalt (Planung) (6)

Semantische Modelle nebenl¨aufiger Programmiersprachen:

Kurze Einf¨uhrung in die Semantik von Programmiersprachen der π-Kalk¨ul als Message-Passing-Modell

der CHF-Kalk¨ul als Shared-Memory-Modell Beziehungen zwischen den Modellen evtl. weitere Modelle

(13)

Literatur (1)

Zu Mutual-Exclusion-Algorithmen und Konstrukte der nebenl¨aufigen Programmierung

Ben-Ari, M. (2006).Principles of concurrent and distributed programming. Addison-Wesley.

Taubenfeld, G.(2006).Synchronization Algorithms and Concurrent Programming. Prentice-Hall.

Reppy, J. H. (2007).Concurrent Programming in ML.

Cambridge University Press.

Raynal, M.(2013).Concurrent Programming: Algorithms, Principles, and Foundations, Springer.

(14)

Literatur (2)

Zu Concurrent Haskell:

Peyton Jones, S. & Singh, S. (2009). A tutorial on parallel and concurrent programming in haskell. In P. Koopman, R. Plasmeijer, & D. Swierstra, editors,Advanced Functional Programming, 6th International School, AFP 2008, Revised Lectures, volume 5832 of Lecture Notes in Computer Science, pages 267–305. Springer. ISBN-13 978-3-642-04651-3.

Marlow, S. (2013).Parallel and Concurrent Programming in Haskell, O’Reilly.

. . .

(15)

Literatur (3)

Zumπ-Kalk¨ul:

Milner, R.(1999).Communicating and Mobile Systems: the Pi-Calculus. Cambridge University Press.

Sangiorgi, D. & Walker, D. (2001). Theπ-Calculus: A Theory of Mobile Processes. Cambridge University Press, New York, NY, USA.

(16)

Weitere Literatur

Verweise auf speziellere Forschungsartikel etc. werden im Skript zu den einzelnen Themen angegeben.

Referenzen

ÄHNLICHE DOKUMENTE

blockiert: Prozess darf keine Schritte ausf¨ uhren Blockieren / Entblockieren durch Programmbefehle, nicht durch Scheduler..

Initial: wartend: atomares Register, am Anfang 0 kunden: genereller Semaphor, am Anfang 0 mutex: bin¨ arer Semaphor, am Anfang 1 synch,friseur: bin¨ arer Semaphor am Anfang 0

signalC(cond) kann effektlos sein: Entweder Prozess in cond wird entblockiert, oder effektlos, wenn cond leer ist. TCS | 06 Programmierprimitiven II | WS 2019/20 17/53

TCS | 07 Programmierprimitiven III | WS 2019/20 22/61 Kan¨ ale Tuple Spaces: Das Linda Modell.. n¨ utzlich bei.. n¨ utzlich bei.. n¨ utzlich bei.. n¨ utzlich bei.. n¨ utzlich bei..

TCS | 07 Programmierprimitiven III | WS 2019/20 2/61 Kan¨ ale Tuple Spaces: Das Linda Modell.. Shared

2 Halten und Warten (Hold and Wait): Ein Prozess kann eine Ressource anfordern (auf eine Ressource warten), w¨ ahrend er eine andere Ressource bereits belegt hat.. 3 Keine

Jede TVar hat eine assozierte Warteschlange von Threads Wird retry ausgef¨ uhrt, so h¨ angt sich der entsprechende Thread in die Wartelisten aller gelesenen TVars ein und

4 Zirkul¨ ares Warten: Es gibt zyklische Abh¨ angigkeit zwischen wartenden Prozessen: Jeder wartende Prozess m¨ ochte Zugriff auf die Ressource, die der n¨ achste Prozesse im