Skip to main content

Parallele und verteilte Konzepte

  • Chapter
  • 112 Accesses

Zusammenfassung

Ein Programm kann als eine auf einem Prozessor ablaufende Problemlösung verstanden werden. Es wird durch sequentiell ausführbare Instruktionen beschrieben, wobei die sequentielle Ausführung durch Sprungbefehle durchbrochen sein kann. Prozeduren und Prozesse bilden die Bausteine von Problemlösungen. Prozeduren — auf einem höheren Abstraktionsniveau realisierte Operatoren — stellen eine Zerlegung eines Programms dar, sind damit Ausdrucksform der hierarchischen Strukturierung des Programms, des “zeitlichen Ineinanders” (Wettstein 1987). Im Gegensatz dazu ist ein Prozeß eine funktionelle Einheit, die aus einem zeitlich invarianten Programm, einem Satz von Eingangsdaten, mit denen der Prozeß initialisiert wird, und einer zeitlich Varianten Belegung von Variablen besteht (Ungerer 1989). Der Prozeßbegriff bezeichnet damit ein potentiell oder tatsächlich auf einem Prozessor ablaufendes Programm bzw. einen selbständig ablauffahigen Teil eines Programms. Der Unterschied von Prozedur und Prozeß besteht darin, daß eine Prozedur in jedem Fall die Kontrolle an das aufrufende Programm zurückgibt, während nach einem Prozeßaufruf der aufgerufene Prozeß “eine vom aufrufenden Prozeß unabhängige Lebensdauer” (Ungerer 1989) hat. Der Prozeß ist somit eine Ausdrucksform des “zeitlichen Nebeneinanders” (Wettstein 1987) von Programmen.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   49.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   49.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Referenzen

  1. Für die Datenkopplung findet auch der Begriff Kooperation Verwendung, der in dieser Arbeit jedoch in einem weiteren Sinn als Zusammenarbeit zwischen Prozessen benutzt wird.

    Google Scholar 

  2. Vgl. fork-Konzept unter UNIX.

    Google Scholar 

  3. Vgl. zu formalen Definitionen von Prozessen auch Richter (1985).

    Google Scholar 

  4. Im Kap. 4.1 wurde die Aktionsfunktion mit Operatorsequenz bezeichnet. Manche Autoren verwenden auch einfach das Wort Programm (Vgl. Tanenbaum 1994).

    Google Scholar 

  5. Es wird hier der Begriff Prozeßstatus bzw. der von Siegert (1989) verwendete Begriff Arbeitsstatus benutzt, um die Unterscheidung zum allgemeineren Begriff Zustand, der in Kap. 4.1 eingeführt wurde, zu ermöglichen. Zur Abbildung Vgl. Siegert (1989, S. 49).

    Google Scholar 

  6. Vgl. Kap. 5.1.3.

    Google Scholar 

  7. Ungerer (1989) verwendet das Begriffspaar explizite, implizite Parallelität genau umgekehrt.

    Google Scholar 

  8. Ebenso können Terme kommutativer Operationen parallel berechnet werden. Ein einfaches Beispiel ist die gleichzeitige Auswertung der beiden Klammerausdrücke bei der kommutativen Multiplikation: (a+b) * (c + d/f).

    Google Scholar 

  9. Eine ausführliche Diskussion unterschiedlicher Strategien der Prozeß — Prozessorzuordnung findet sich bei Heiss (1994).

    Google Scholar 

  10. Vgl. hierzu ausführlich Heiss (1994).

    Google Scholar 

  11. Die Mindestanforderung einer zeitlichen Abstimmung beinhalten den Start, das Beenden eines parallelen Systems sowie das Herstellen einer gültigen Sicht des Systemzustandes. Auf diese Problematik wird in Kap. 5.3 bzw. 5.5 eingangen.

    Google Scholar 

  12. Wie die Synchronisation zwischen den Prozessen mit Hilfe von Nachrichten realisiert werden kann, wird in Kap. 5.3 gezeigt.

    Google Scholar 

  13. Insofern kann die Synchronisation von Prozessen unter die Kommunikation subsumiert warden (Wettstein 1987).

    Google Scholar 

  14. Vgl. Kap. 5.2.

    Google Scholar 

  15. Vgl etwa Kober (1988), Bräunl (1993).

    Google Scholar 

  16. Bsp.: verteilte Prozeßdatenverarbeitung, Flugbuchungssysteme.

    Google Scholar 

  17. Vgl. etwa Ungerer (1989), Quinn (1988). Demnach wäre es billiger, einen Rechner doppelter Leistung zu kaufen, als zwei Rechner der gleichen Leistung zu koppeln.

    Google Scholar 

  18. Die Geschwindigkeit der Informationsübertragung ist durch die Lichtgeschwindigkeit (max. 3* 109km/sek im Vakuum) begrenzt. Ein Chip von 3 cm im Durchmesser, kann bei heutiger Technologie, die eine maximale Signalgeschwindigkeit von ungefähr 3 *1010 mm/sek zuläßt, ein Signal in ungefähr einer Nanosekunde fortpflanzen. Wird mit jedem Signal eine Gleitkommaoperation ausgeführt, lassen sich bestenfalls 109 Gleitkommaoperationen in der Sekunde verarbeiten. Selbst bei Supraleitfähigkeit eines Chips läßt sich dieser Wert nur noch um eine Zehnerpotenz steigern.

    Google Scholar 

  19. Vgl. Amdahl (1967), Heiss (1994). Harel (1992) führt hierfür das anschauliche Beispiel der 100 Arbeiter, die ein ein Meter tiefes Loch graben sollen, an.

    Google Scholar 

  20. Vgl. Harel (1992) bzw. Kap. 6.2.1.2.

    Google Scholar 

  21. Vgl. hierzu die Ergebnisse in Kap. 7.5.

    Google Scholar 

  22. Heiss (1994) postuliert den theoretischen Idealfall in einem linearen ‘speed up’.

    Google Scholar 

  23. Das hier dargestellte FORK-Konzept entspricht der Implementierung in Smalltalk. Dort wird durch ein FORK ein Prozeß erzeugt, der eine Sequenz von Anweisungen des aufrufenden Prozesses übernimmt (Vgl. Kober 1988). Bei der UNIX-Implementierung dagegen wird durch ein fork() eine Kopie des Vaterprozesses erzeugt. Die Unterscheidung zwischen dem Vater und dem Sohnprozeß liefert die als Ergebnis des fork()-Aufrufs erzeugte Prozeßnummer; die explizite Vereinbarung des JOIN ist nicht vorgesehen.

    Google Scholar 

  24. Auch moderne PC-Betriebssyteme (z.B. OS/2 in dem ‘thread’-Konzept) besitzen die Möglichkeit des Prozeßaufrufs, teilweise stehen sogar Laufzeitroutinen für die Verwaltung dynamischer Prozeßmengen zur Verfügung.

    Google Scholar 

  25. Unter Topologie wird hier die technologische Anordnung der Kommunikationsverbindungen (‘processor interconnections’) verstanden.

    Google Scholar 

  26. Vgl. Mattern (1989).

    Google Scholar 

  27. Unter dem Begriff ‘pipelining’ versteht man die Zerlegung einer Maschinenoperation in mehrere Suboperationen, die dann hintereinandergeschachtelt taktsynchron von mehreren Verarbeitungseinheiten bearbeitet werden. Da verschiedene Phasen der Befehlsausführung in aufeinanderfolgende Instruktionen aufgeteilt werden, die in verschiedenen Taktzyklen abgearbeitet werden, wird auch der Begriff der vertikalen Aufteilung verwendet.

    Google Scholar 

  28. Beispielsweise verschwimmen die Grenzen zwischen Vektorrechnern und Multiprozessorsystemen, wenn jeder Prozessor eines Multiprozessorsystems eine Pipeline für die Verarbeitung von Gleitkommavektoren besitzt (sogenannte MIMD/SIMD-Maschinen).

    Google Scholar 

  29. Eine an diesen Kriterien orientierte Taxonomie wird auch von Ungerer (1989) vorgestellt, der außerdem auf weitergehende Taxonomien von Hockney und Mahle eingeht.

    Google Scholar 

  30. Im Gegensatz zu der allgemein gebräuchlichen Unterscheidung spricht Quinn (1988) von stark gekoppelten Prozessoren, wenn alle Prozessoren mit einem zentralen Schaltmechanismus zusammenarbeiten, um den gemeinsamen Speicher zu erreichen.

    Google Scholar 

  31. Die Gleichsetzung von Workstation mit Prozessor ist ungenau, da eine Workstation selbst mehrere Prozessoren aufweisen kann.

    Google Scholar 

  32. Durch das Einschalten von sogenannte Routern/Bridges ist auch eine Verbindung zwischen Netzwerken mit unterschiedlichen Protokollen möglich.

    Google Scholar 

  33. Vgl. weitere Ausführungen in Kap. 5.5.

    Google Scholar 

  34. In heutigen PC-Betriebssystemen (Windows-Familie, OS/2) sind Schnittstellen (API ‘application Programm interfaces’) zu Netzwerkdiensten integriert. Weiterhin stehen eine Vielzahl von Programm-Bibliotheken für Hochsprachen (z.B. Novells ‘software development kit’) zur Verfügung, die eine Integration von Protokollservices oder serverbasierten Netzwerkdiensten in Anwendungsprogramme zulassen. Die Verfügbarkeit der SDK’s für verschiedene Betriebssystemplattformen (DOS, Windows, OS/2, UNIX) ermöglichen im hohen Maße die Portierbarkeit und somit die Integration inhomogener Betriebssysteme.

    Google Scholar 

  35. Die Technologie der RPC (‘remote procedure calls’), wie sie in der DCE-Spezifikation (‘distributed computing environment’) der OSF beschrieben sind, erlaubt es Prozeduraufrufe aus einem Anwendungsprogramm über Rechnergrenzen hinweg durchzuführen, ohne daß der Programmierer direkt auf der Basis der Transportdienste für die Kommunikation sorgen müßte (Vgl. etwa Xtrain 1991, Schill 1993). In Verteilten Objektsysteme werden standardisierte Mechanismen bereitgestellt, um verteilten Objekten zu ermöglichen, Methoden anderer Objekte (auf anderen Rechnern) aufzurufen und Ergebnisse zu empfangen. Es existieren unterschiedliche Standards, z.B. CORBA der OMG, DSOM von IBM, DCOM von Microsoft; zu CORBA Vgl. OMG (1992), Hansen (1995).

    Google Scholar 

  36. PVM ist ein ursprünglich am Oak Ridge National Laboratory entwickeltes ‘message passing’ System, das auf dem Internet-Protokoll TCP/IP aufsetzt und daher besonders für heterogene Umgebungen geignet ist. Es ist im UNIX-Bereich für eine Vielzahl von Rechnermodellen (frei) erhältlich und wird in der UNIX-basierten universitären Forschung zur Implementierung verteilter paralleler Anwendungen im Netzwerk eingesetzt (Vgl. Sunderman 1990, Thiemann 1994, Pleier und Stellner 1994).

    Google Scholar 

  37. Parset stellt Sprachkonstrukte zur Implemtierung paralleler Anwendungen zur Verfügung; Vgl. Joshi und Ram (1995).

    Google Scholar 

  38. Eine (zeitliche) Synchronisation kann in verteilten Systemen simuliert werden, indem jeder Prozeß jeweils nach einer festgelegten Zeitscheibe in Interaktion mit anderen Prozessen tritt. Die Überwachung des Zeitintervalls kontrolliert hierbei jeder Prozeß selbst mit Hilfe einer lokalen Uhr. Entsprechend ist von vornherein im gesamten System ein Zeitintervall vorzugeben, innerhalb dessen die längste aller Teilaufgaben vom langsamsten Prozessor gelöst werden kann. Aus diesem Vorgehen resultieren regelmäßig Wartezeiten, die einen hohen Anteil an der Gesamtrechenzeit ausmachen können. Daher wird hier auf diese Möglichkeit nicht weiter eingegangen.

    Google Scholar 

  39. Es wird hier nicht weiter auf die Grundlagen des objektorientierten Ansatzes eingegangen. Hierzu sei auf die vorhandene Literatur hingewiesen (z.B.: Coad und Yourdan (1994a,b) Coad aund Nicola (1993), Rumbaugh u.a. 1993). Je nach Herkunft, Methode oder zugrundegelgter Programmiersprache wird eine Vielzahl von Begriffen in der objektorientierten Modellierung verwendet, die sich auf einige grundlegende Begriffe einschränken lassen. Die Ausführungen lehnen sich an die von Coad und Yoardan (1994a,b) vorgestellte Methode an.

    Google Scholar 

  40. Generalisierung/Spezialisierung bei Coad und Yoardan (1994a,b).

    Google Scholar 

  41. Instanzverbindung bei Coad und Yourdan (1994a,b).

    Google Scholar 

  42. Whole-Part-Struktur bei Coad und Yoardan (1994a,b).

    Google Scholar 

  43. Methoden oder auch “Service” (Coad und Yoardan 1994a,b).

    Google Scholar 

  44. Eine Formulierung des Semaphorkonzepts, die unabhängig von Betriebssystemimplementierungen ist, wurde in dem von Brinch Hansen (1973) eingeführten Monitorkonzept vorgestellt. Ein Monitor ist ein abstrakter Datentyp, in dem Koordinationsvariablen sowie die darauf ausführbaren Operationen gekapselt sind. Vgl. auch Hoare (1974).

    Google Scholar 

  45. Dijkstra (1965) bezeichnete die elementaren Operationen auf einer Koordinationsvariablen mit P(s) bzw. V(s). P(s) steht hierbei für Passieren des kritischen Abschnitts und V(s) für Verlassen des kritischen Abschnitts. Da die Symbole hier bereits anders belegt sind, werden mehr sprechende Prozedurvariablen verwendet.

    Google Scholar 

  46. Vgl. Ben-Ari (1984, Seite 73).

    Google Scholar 

  47. Geeignete Vorgehensweisen zur Verklemmungsanalyse finden sich bei Ben-Ari (1984), Wettstein (1987), Tanenbaum (1994).

    Google Scholar 

  48. Auch ‘message passing’-Bibliotheken wie PVM weisen diesen Aufbau auf und basieren auf Kommunikationsprimitiven zum Senden und Empfangen. Da für das verfügbare Rechnernetz eine einsatzfähige Version von PVM nicht zur Verfügung stand, waren die entsprechenden Konzepte in dieser Arbeit zu entwickeln.

    Google Scholar 

  49. In verschiedenen Betriebssystemen (OS/2, Windows NT) sind derartige asynchrone Kommunikationskänale, die Nachrichten in einer Warteschlange verwalten, bis sie vom Empfänger abgeholt werden, realisiert; sie werden als Pipe bezeichnet, ‘named pipes’ sind Kanäle, die mit symbolischen Namen angesprochen werden können. In den genannten CORBA-Ansätzen (OMG 1992) erfüllt der ORB (‘object request broker’) die Funktion des Kommunikationsobjekts; der ORB wird selbst aktiv und übergibt die erhaltene Nachricht an das Objekt B weiter.

    Google Scholar 

  50. Diese Synchronisation erfolgt einmal mit der Binärvariablen status, die angibt, ob eine Nachricht gesendet oder bereits empfangen wurde. Versucht das Objekt B eine Nachricht zu empfangen und zeigt die Variable status = ‘empfangen’ an, daß keine Nachricht vorliegt, so erhält das Empfängerobjekt den Rückgabewert 0. Andernfalls wird die wartende Nachricht empfangen und der Nachrichtenzähler (zähler) zurückgegeben.

    Google Scholar 

  51. Werden eine Menge von Kanälen (KommObj) zwischen einer Prozeßmenge eingesetzt, so erleichtern die Zähler das Überprüfen, ob alle gesendeten Nachrichten auch empfangen wurden. Insbesondere gilt dies bei Kanälen, die mehrere Nachrichten aufnehmen können.

    Google Scholar 

  52. Wird eine Prozeßinstanz auf einer Workstation ausgeführt, auf der mehrere Prozesse ablaufen (z.b. OS/2, Windows), gibt es auf dem lokalen Rechner natürlich Routinen zur Prozeßkontrolle. Aber diese Routinen umfassen nur das lokale System. Diese Betrachtung erfolgt aus der Sicht eines verteilten parallelen Systems, in der die Prozesse selbst und nicht die Betriebssysteme beteiligter Rechner miteinander kommunizieren.

    Google Scholar 

  53. Prozeß-Objekte sind in objektorientierten Konzepten nicht selbstverständlich. In der objektorientierten Programmiersprache Smalltalk wurde ein Prozeßbegriff eingeführt, um nebenläufige Aktivitäten unabhängiger Objekte zu unterstützen. Allerdings ist der Prozeßbegriff in Smalltalk zusätzlich zu dem Objektbegriff vorhanden. Eine integrierte Sicht der objektorientierten und prozeßorientierten Programmierung ist bisher wenig entwickelt. Broer, Uphoff u.a. (1991) stellen eine Erweiterung des Objektkonzepts von Smalltalk vor, indem sie die Dienstanforderungen an eine Prozedur puffern (‘Nachrichtensekretariat’) bzw. die Ergebnisse in Containern ablegen. Bekannt wurde auch das sogenannte Aktor-Modell für lose gekoppelte parallele Prozesse, die asynchron miteinander kommunizieren (Vgl. Agha und Hewitt 1987). In anderen objektorientierten Programmiersprachen (z.b. C++) wird die Verbindung von Objekt und Prozeß derzeit nicht unterstützt. Einen weitergehenden Ansätze, in dem im (heterogenen) Netz verteilte Objekte Methoden anderer Objekte (auf anderen Rechnern) aufrufen und Ergebnisse empfangen können, stellen die sog. ‘object request broker’ dar. Hierbei haben sich unterschiedliche Standards herausgebildet: Im DSOM (‘distributed system object modell’) von IBM werden allgemeine Schnittstellen für verschiedene Betriebssysteme sowie für unterschiedliche Programmiersprachen zur Verfügung gestellt; Microsoft versucht mit dem eigenen DCOM-Standard Anschluß zu finden. Die OMG bemüht sich um die Weiterentwicklung des CORBA-Standards (Vgl. OMG 1992). Bei der Entwicklung dieser Arbeit war für die eingesetzte Netzwerkumgebung eine entsprechende Unterstützung durch ‘object request broker’ noch nicht verfügbar.

    Google Scholar 

  54. Bspw. Mailbox bzw. Blackboard (vgl. Kap. 5.4).

    Google Scholar 

  55. Auf die explizite Spezifikation der zugrundegelegten Typen (Klassen) Auftrag und Ereignis wird verzichtet.

    Google Scholar 

  56. Statt des hier dargestellten “Polling”-Prinzips können natürlich elegantere Lösungen zum Signalempfang eingesetzt werden. Diese erfordern jedoch, daß Systemdienste für Prozeß-Objekte vorhanden sind.

    Google Scholar 

  57. Der Bully-Algorithmus geht auf Gracia-Molina (1982) zurück, er wird hier nach Tanenbaum (1994) zitiert.

    Google Scholar 

  58. Zu Abb. 5.11 Vgl. Weikum (1988). Zu Implementierungsvarianten des 2-Phasen-Commit-Protokolls bzw. zu Recovery-Strategien bei verteilten Transaktionen sei verwiesen auf Weikum (1988) Ceri und Pelagatti (1984), Reinwald und Wedekind (1994).

    Google Scholar 

  59. Die Definition wird nach Mattern (1989) angegeben. Chandy und Misra (1989) fordern für die Termination eines verteilten Systems, daß alle Prozesse inaktiv und ihre Ausgangskanäle leer sind. Folgt man dieser Definition, so sind andere Vorgehensweisen zur Überprüfung notwendig, die bei gepufferter Nachrichtenübertragung ungeeignet erscheinen.

    Google Scholar 

  60. Eine Numerierung der Nachrichten wurde bereits bei der Einführung des Kommunikationskanals berücksichtigt.

    Google Scholar 

  61. Vgl. Kap. 5.3.5.1.

    Google Scholar 

  62. Mattern (1989) stellt mit dem differenziertes Zählen, der Vektormethode, dem Doppelzählverfahren bzw. dem Zeitzonenverfahren weitere geeignete Vorgehensweisen vor.

    Google Scholar 

  63. Vgl. Kap. 5.3.3.

    Google Scholar 

  64. Beide Formen, das Broadcasting sowie das Multicasting sind in der Regel in einem Server-basierten Netzwerkbetriebssystem sowohl auf der Ebene des Netzwerkprotokolls als auch auf Dateiebene realisierbar.

    Google Scholar 

  65. Da aufgrund der Erhöhung des Zugangszählers immer — auch beim Lesen — verändernde Operationen vorliegen, ist es sinnvoll, mehrere Operationen in einem kritischen Bereich zusammenzufassen. Durch das Zusammenfassen von Lese- und Empfangsoperationen verliert das Vorgehen die allgemeine Verwendbarkeit.

    Google Scholar 

  66. Vgl. Mattern (1989). Ebenso kann ein modifiziertes Schnappschußverfahren eingesetzt werden. Dabei wird mit einem Wahlalgorithmus ein Koordinator bestimmt, der über die Termination der Maximumsuche entscheidet.

    Google Scholar 

  67. Vgl. Kap. 5.3.6.4.

    Google Scholar 

  68. Das optimistische Vorgehen des einfachen Sperrens kann zu ‘deadlock’-Situationen führen, wenn beispeilsweise zwei Clients C1 und C2 die Dienste eines File-Servers beanspruchen , um ihre Daten in einer gemeinsamen zentralen Datei comfile des File-Servers zu verwalten und einer der beiden Clientprozesse “abstürzt”, während er die Datei gesperrt hält.

    Google Scholar 

  69. Andere Bezeichnungen lauten Master-Worker-Modell bzw. Modell der replizierten Arbeiter (‘replicated workers’, Heiss (1994)).

    Google Scholar 

  70. Prozeßzuteilungsalgorithmen in verteilten Systemen werden beispielsweise bei Tanenbaum (1994) angegeben.

    Google Scholar 

  71. Der Begriff Dämon findet Verwendung für einfache Prozesse, die zyklisch wiederkehrend das Vorhandensein einer Nachricht, Datei oder eines Ereignisses prüfen, gegebenenfalls eine einfache Aktionsfolge ausführen und danach wieder ‘einschlafen’, bis sie vom nächsten Zeitsignal geweckt werden.

    Google Scholar 

  72. Ein Master kann mehrere Probleme in Folge verarbeiten, daher wird eine verteilte Berechnung durch die Kombination aus MasterID und einer eindeutigen ProblemID gekennzeichnet.

    Google Scholar 

  73. Vgl. Haug (1995).

    Google Scholar 

Download references

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer Fachmedien Wiesbaden

About this chapter

Cite this chapter

Schütz, G. (1997). Parallele und verteilte Konzepte. In: Verteilt-parallele Ansätze zur Distributionsplanung. Deutscher Universitätsverlag, Wiesbaden. https://doi.org/10.1007/978-3-663-09109-7_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-663-09109-7_5

  • Publisher Name: Deutscher Universitätsverlag, Wiesbaden

  • Print ISBN: 978-3-8244-6441-8

  • Online ISBN: 978-3-663-09109-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics