Nichtsequentielle Programmierung

WS97/98



  • Vorlesung :
    Dienstag, 12.00 - 14.00 Uhr
    Ort : HS, Takustraße 9
    Beginn : 21.10.
    bei : Christian Maurer
       
  • Übung A:
    Mittwoch, 12.00-14.00 Uhr
    Ort : Raum SR051, Beginn : 22.10.
    bei: Markus Dahm
  • Übung B:
    Montag, 16.00-18.00 Uhr
    Ort : Raum SR051, Beginn : 27.10.
    bei: Dirk Draheim
  • Vorlesung - Zusatztermine:
    Donnerstag, 08.01., 16.00-18.00 Uhr
    Donnerstag, 22.01., 16.00-18.00 Uhr
    Donnerstag, 05.02., 16.00-18.00 Uhr
    Ort : Raum SR049
  • Klausurtermin:
    Dienstag, 10.02., 13.00-14.00 Uhr



Inhalt : Ursprünglich fand die nichtsequentielle Programmierung beim Betriebssystembau und bei der Prozeßdatenverarbeitung ihre Verwendung. Aufgrund neuartiger Rechnerarchitekturen und wegen der Verwendung von Rechnernetzen erlangt sie eine immer noch wachsende Bedeutung. Die Vorlesung stellt grundlegende Konzepte, Methoden und Techniken der Programmierung nebenläufiger und verteilter Systeme dar. Dabei stehen die Synchronisation und die Kommunikation nebenläufiger Prozesse im Mittelpunkt.


Voraussetzungen:
Grundstudium Informatik

Hinweis: Diese Vorlesung setzt den auf sequentielle Programmierung beschränkten Zyklus Algorithmen und Programmierung I - III fort. Sie ist Voraussetzung für verschiedene Veranstaltungen des Hauptstudiums, z.B. Betriebssysteme und Verteilte Systeme.

Scheinkriterien: Ein Schein wird durch die Bearbeitung von Übungsaufgaben und das Bestehen einer Klausur erlangt. Die Übungsaufgaben können alleine oder in 2er-Gruppen gelöst werden, besser allerdings alleine. Die Klausur findet am Ende des Semesters statt. Es soll sich um eine "Verständnisklausur" handeln, die nicht länger als 45min dauern wird.

Übungsblätter: Unter diesen Referenzen könnt Ihr Euch in Zukunft die Übungsblätter laden.
      1   2   3   4/5   6   7   8   9   10  


Die Quelle für das 10.Übungsblatt, 5.Aufgabe: chansem.pfc.zip

Weiteres Material kann unter folgenden Links geladen werden: Das gleiche Material kann in einzelnen Originaldateien aus dem Verzeichnis ~maurer/NSP kopiert werden.

Außerdem :
Sprechstunde zu den Übungen: Ihr könnt uns natürlich jederzeit anrufen, mailen oder vorbeikommen, um uns Fragen zu stellen. In den angegebenen Sprechstundenzeiten sind wir garantiert in unserem Zimmer:

Programmiersprache: Die in der Lehrveranstaltung vorgestellten Konzepte werden in der Programmiersprache PASCAL-FC eingeübt.Der Compiler steht auf den UNIX-Rechnern unter dem Pfad /opt/pasfc/bin zur Verfügung. Der Aufruf erfolgt über pfc. Einen Quellcode example also einfach durch pfc example übersetzen und starten.
Wer mit PASCAL-FC zuhause üben möchte,
findet entsprechende Versionen unter diesen Links

In diesen Dokumenten findet man Informationen und Dokumentation zu PASCAL-FC: In York findet man das "Dining-Philosopher-Problem" in verschiedenen Versionen als Beispielprogamm in PASCAL-FC.




Literatur

Lehrbücher
Burns, A.Davies G.: Concurrent Programming, Addison Wesley, 1993
Andrews, G.: Concurrent Programming, Benjamin/Cummings, Redwood City, 1991
Herrtwich/Hommel: Nebenläufige Programme, Springer-Verlag, 1993

Grundlegende Literatur
Dijkstra,E.W. : Solution of a Problem in Concurrent Programming Control, Communications in ACM 8, p.569, 1965 (Einfürung des Begriffs "kritscher Abschnitt"; Algorithmus von Dekker, Verallgemeinerung auf n Prozesse)
Dijkstra, E.W. : Co-operating Sequential Processes in : Programming Languages (ed. Genuys), pp.43-112, Academic Press, 1968
Hoare, C.A.R. : Monitors : An Operating System Structuring Concept, Communications in ACM 17, pp.549-557, 1974
Lamport, Leslie : A new Solution to Dijkstras Concurrent Programming Problem, Communications in ACM 17, pp.453-455, 1974 (Bakery-Algorithmus)
Lamport, Leslie : A new Approach to Proving the Corectness of Multiprocess Programs ACM Transactions on Programming Languages and Systems 1, pp.84-97, 1979
Peterson, G.L. : Myths about the Mutual Exclusion Problem, Information Processing Letters 12, pp.115-116, 1981 (Tie-Breaker-Algorithmus)
Hoare, C.A.R : Communicating Sequential Processes, Communications in ACM 17, pp.666-677, 1978