Skip to main content
main-content

Inhaltsverzeichnis

Frontmatter

Kapitel I. Grundlagen

Zusammenfassung
Die Möglichkeiten zur Nutzung von Parallelität und die Sprachmittel zur Formulierung paralleler Abläufe hängen u.a. vom verwendeten parallelen Computersystem ab. Dieses ist durch die zugrunde liegende Architektur, durch das Betriebssystem, die verfügbaren parallelen Sprachen und durch Werkzeuge zur Entwicklung, zum Laden, Start, zur Überwachung und zum Test paralleler Programme gekennzeichnet.
Volker Penner

Kapitel II. Kommunikation auf der Grundlage geteilter Variabler

Zusammenfassung
Die Kommunikation von Prozessen kann durch Variable vermittelt werden, die für mehrere Prozesse gleichermaßen zugänglich sind und daher geteilte (shared variables) Variable heißen.
Volker Penner

Kapitel III. Kommunikation durch den Austausch von Nachrichten

Zusammenfassung
Mailbox-, Rendez-Vous-Konzepte, Ports oder Kanäle verwenden keine geteilten Speicherbereiche zur Synchronisation und Kommunikation; sie haben vielmehr Mechanismen zum Austausch von Botschaften (message passing) als Grundlage. An die Stelle des Schreibens und Lesens von Daten tritt das Senden und Empfangen von Nachrichten, und an die Stelle der geteilten Variablen tritt der Kommunikationskanal. Der Nachrichtenaustausch mit Hilfe von Anweisungen
(i)
send expression to receiver
zum Senden einer Nachricht an einen Empfänger oder an eine Empfängergruppe (multicast, broadcast) und Anweisungen
 
(ii)
receive variable from sender
zum Empfang einer Nachricht ermöglicht.
 
Volker Penner

Kapitel IV. Occam und Transputer

Zusammenfassung
Die erste Version von Occam -Proto-Occam genannt- ist aus CSP hervorgegangen. CSP [Hoa 78][BHR 84] ist eine rudimentäre Programmiersprache, über die es eine große Zahl von Arbeiten in der Literatur gibt, und die Grundlage für Occam [INM 88a] ist. Die Arbeiten beziehen sich weitgehend auf die formale Behandlung grundlegender Begriffe (Kommunikation, Prozeß, Synchronisation, Deadlock, Livelock) der parallelen Programmierung, auf Methoden zur Spezifikation der Semantik und hierauf aufbauend zur Verifikation von Programmeigenschaften. Wesentliches Merkmal der CSP-artigen Sprachen und damit auch von Occam ist die Einfachheit der Sprachen. Daher der Name “Occam”, der auf den englischen Philosophen William of Ockham (14. Jahrh.) zurückgeht. Occam trägt dem Rechnung und erlaubt Zuweisungen und als sequentielle Kontrollstrukturen die Hintereinanderschreibung, Verzweigung und Iteration. Konstrukte zur Formulierung rekursiver Strukturen sind nicht vorgesehen. Dem entspricht, daß lediglich statische Datentypen integer, real, byte, boolean, timer, channel und Feldtypen erlaubt sind. Die Möglichkeiten zur Beschreibung paralleler Prozesse und zur Kommunikation sind einfach.
Volker Penner

Kapitel V. Verbindungsnetzwerke

Zusammenfassung
Kennzeichnend für die Architektur eines Transputersystems ist u.a. der Aufbau und die Struktur des Verbindungsnetzwerks. Das Netzwerk hat die Aufgabe, die Linkinterfaces der Transputer paarweise miteinander zu verbinden, um die Kommunikation der auf den Prozessoren ablaufenden parallelen Aktivitäten zu ermöglichen. In seiner einfachsten Form kann das Netzwerk aus Leitungen zwischen den Linkschnittstellen bestehen. Es entsteht eine statische Verbindungsstruktur. Sie kann die Form eines Ringes, Torus, Sterns, Hypercubes, einer Pipeline etc. haben.
Volker Penner

Kapitel VI. Logische Sprachen

Zusammenfassung
Die Erfahrungen im Bereich des Automatischen Beweisens, wo Beweissysteme auf der Grundlage der Resolution [Rob 65], der Induktion oder von Hilbert-Typ-Kalkülen entwickelt werden, zeigen den hohen Aufwand, der bei der Implementation der vollen Prädikatenlogik zu treiben ist. Den meisten logischen Programmiersprachen und insbesondere Prolog [Col 79] (programming in logic) liegt daher eine Teilmenge der Prädikatenlogik - die Horn-Klausel-Logik — zugrunde. Sie ermöglicht die Verwendung der SLD-Resolution (lineare Resolution mit Selektorfunktion für definite Klauseln), die im Unterschied zu allgemeinen Resolutionsprozeduren effiziente Implementationen zuläßt. Logische Programme sind endliche Mengen von Horn-Klauseln, die prädikatenlogische Formeln in Klauselform repräsentieren und die je nach Semantik unterschiedlich interpretiert werden. Aufbauend auf der operationalen Interpretation wird in den folgenden Abschnitten das für parallele logische Sprachen wichtige Prozeßmodell entwickelt. Grundlegend sind dabei syntaktische Begriffe (Term, Formel, Klausel, Substitution, Unifikation) zur Beschreibung und Manipulation von Daten resp. zur Charakterisierung von Eigenschaften und Zusammenhängen und beweistheoretische Begriffe (Resolution), mit deren Hilfe sich ein Ableitungs- und Auswertungsbegriff für Anfragen definieren läßt.
Volker Penner

Kapitel VII. Linda

Zusammenfassung
Linda ist keine Programmiersprache. In [Gel 85][CaGe 89a][CaGe 89b] werden vielmehr Sprachkonstrukte zur Prozeßkommunikation eingeführt, die sich unter Beachtung des jeweiligen Typkonzepts in konventionelle Sprachen wie C, C++, Modula-2, FORTRAN etc. integrieren lassen. Es entstehen parallele Programmiersprachen C-Linda, FORTRAN-Linda etc., die eine explizite parallele Programmierung in C etc. ermöglichen. Bemerkenswert ist das Kommunikationsmodell, nach dem der Austausch von Daten durch einen Assoziativspeicher — den Tuple-Space- vermittelt wird. Der Speicher übernimmt die Rolle einer Mailbox, über die durch Ablage (out-Operation) und Entnahme (in-Operation) von Tupeln die Kommunikation zwischen Prozessen abgewickelt wird. Die Prozesse holen sich Daten aus dem Speicher, verarbeiten sie und legen Ergebnisse dort wieder zurück. Linda gestattet die Generierung von Prozessen mit Hilfe von eval-Operationen. deren Wirkung mit der von out vergleichbar ist. Der Unterschied besteht darin, daß zunächst Prozesse generiert werden, die bei Terminierung in Daten übergehen, und die ihrerseits anderen Prozessen als Eingabe dienen können. Die für Linda vorgesehene Kommunikation wird daher in [Gel 85] als generativ (generative communication) bezeichnet.
Volker Penner

Backmatter

Weitere Informationen