next up previous
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: 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
\begin{figure}
\begin{tabular}{ccc}
\fbox{ Proze\ss{} A: $N\,:=\,N+1$\space } ...
...c store} $N$\space & (3) & {\sc store} $N$\space \\
\end{tabular}
\end{figure}

Das Resultat (d.h. der Wert von $N$) 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}

Um obigen undefinierten Zustand zu vermeiden wäre es sinnvoll, die Operationen A und B als nicht teilbar zu betrachten.
$\Longrightarrow$ Exklusiver Zugriff auf $N$ für einen Prozeß für die erforderliche Zeit.
Ein Konzept für diesen exklusiven Zugriff wird im nächsten Abschnitt vorgestellt.


next up previous
Next: 3.2.2 Semaphoren Up: 3.2 Synchronisation paralleler Prozesse Previous: 3.2 Synchronisation paralleler Prozesse
Gundolf Haase
1998-12-22