Next: 3.2.2 Semaphoren
Up: 3.2 Synchronisation paralleler Prozesse
Previous: 3.2 Synchronisation paralleler Prozesse
3.2.1 Einige Begriffe
Bemerkung :
Sequentielle Programmierung ist nur Ausdruck unserer Unfähigkeit,
die natürliche Parallelität nahezu aller Vorgänge einer
''Maschine'' klarzumachen.
Probleme treten bei der Verwaltung paralleler Prozesse auf:
- völlig unabhängige Prozesse (''nur gemeinsame Stromversorgung'')
absolut parallel (
für uns uninteressant)
- gemeinsame Nutzung (knapper) Ressourcen
Multiprogrammbetrieb/Time-Sharing
Verteilungsstrategie notwendig
- Mehrprozessorsysteme mit verteilten Aufgaben einer Gesamtaufgabe
Informationsaustausch erfolgt über shared memory
oder message passing (distributed memory).
Synchronisation :
Verhinderung undefinierter Zustände durch ''Abstimmung'' der Prozesse
untereinander zu bestimmten kritischen Zeitpunkten.
Barrier :
Punkt im Programm, den alle Prozesse durchlaufen müssen.
Garantiert, daß die einzelnen Prozesse solange warten bis alle
Prozesse in ihrer Programmabarbeitung diesen Punkt erreicht haben.
Bsp.: Undefinierter Zustand
-
- Ein undefinierter Zustand kann z.B. beim Zugriff auf gemeinsamen
Speicher auftreten.
Abbildung 3.3:
Undefinierter Zustand
 |
Das Resultat (d.h. der Wert von
)
hängt von der Geschwindigkeit der
Prozesse A und B ab und ist somit undefiniert.
Abbildung 3.4:
Ergebnisse im undefinierten Zustand
![\begin{figure}
Fall a) \hfill
\unitlength0.06\textwidth
\begin{picture}
(11,1...
...0){(2)}}
\put(7,0.5){\makebox(0,0){(3)}}
\end{picture} \\ [2ex]
\end{figure}](img143.gif) |
Um obigen undefinierten Zustand zu vermeiden wäre es sinnvoll,
die Operationen A und B als nicht teilbar zu betrachten.
Exklusiver Zugriff auf
für einen Prozeß für
die erforderliche Zeit.
Ein Konzept für diesen exklusiven Zugriff wird im nächsten Abschnitt
vorgestellt.
Next: 3.2.2 Semaphoren
Up: 3.2 Synchronisation paralleler Prozesse
Previous: 3.2 Synchronisation paralleler Prozesse
Gundolf Haase
1998-12-22