Website zur Veranstaltung: https://www.mi.fu-berlin.de/en/inf/groups/hcc/teaching/summer-term-2020/alp-IV.html
Inhalt
Die Veranstaltung gliedert sich in drei große Bereiche:
- Nichtsequentielle Programmierung I: Maschine mit einer und mehreren CPUs, aber mit einem gemeinsamen Speicher:
- Nichtsequentielle Programme, Prozesse und Threads in ihren verschiedenen Ausprägungen, Nichtdeterminismus, Determinierung
- Synchronisationsmechanismen: Sperren (Locks), Semaphore, Monitore
- Modellierung Nichtsequentielle Programmausführung
- Ablaufsteuerung, Sicherung des kritischen Abschnittes, Umgang mit und Vermeidung von Verklemmung
- Parallelisierung von Schleifen und Funktionen
- Nichtsequentielle Programmierung II: Maschine mit mehreren CPUs, aber ohne gemeinsamen Speicher, wodurch der Nachrichtenaustausch erforderlich ist:
- Paralleverarbeitung auf unterschiedlichen Ebenen
- Interaktion über Nachrichten
- Programmieren und Synchronisieren von gleichzeitig laufenden Prozessen, die über Nachrichtenaustausch interagieren
- Verteilte Programmierung: Unterschiedliche Maschinen
- Fernaufruftechniken
- Client-Server, Peer-to-Peer
- Verarbeitung auf dem Server und auf dem Client
- Middleware, strukturierte Kommunikation
Alle Beispiele aus dem dritten Veranstaltungsteil sind auf Github verfügbar: https://github.com/FUB-HCC/WhiteBoard-Implementation-Examples
Literatur
- Ben-Ari, M., & Ben-Arî, M. (2006). Principles of concurrent and distributed programming. Pearson Education.
- Coulouris, G. F., Dollimore, J., & Kindberg, T. (2005). Distributed systems: concepts and design. Pearson Education.
- Tanenbaum, A. S., & Van Steen, M. (2007). Distributed systems: principles and paradigms. Prentice-Hall.