next up previous contents index
Next: Beispiel: Programmlauf auf der Up: 2 Shared Memory Computer Previous: Beispiel: Matrix Multiplikation

2.2 Atomare Bestandteile und Synchronisation

   Um unerwünschte Überlappungen  zu vermeiden, ist es erforderlich, Programmteile gegenseitig auszuschließen (mutual exclusion)  und gegebenenfalls die Abarbeitungsschritte aufeinander abzustimmen (condition synchronization).   Zum Beispiel kann in dem Programmstück

y:=0; z:=0;
con x:= y + z; begin y:= 1; z:= 2 end end
der Wert von x nach der Ausführung 0, 1, 2 oder 3 sein ! Die Grund dafür liegt darin, daß eine Zuweisung (in der Regel) als eine Folge von `load register' und `store register' Maschinenoperationen implementiert ist.
       x:=y+z;                          y:=1; z:=2;
könnte z.B. durch die folgenden Maschineninstruktionen   implementiert sein.
       load  y                          load imediate 1
       load  z                          store y
       add   y, z                       load imediate 2
       store x                          store z
Der Wert in der Variablen z hängt somit von der zeitlichen Versetzung der beiden Instruktionssequenzen ab. Dieses Beispiel führt uns zu der Definition von elementaren oder atomaren Programmteilen.

Definition: Ein Programmteil heißt Atomare Aktion   falls kein Zwischenschritt, kein Zwischenergebnis und kein Zwischenzustand in einem anderen Prozeß sichtbar ist.

Notation:

atomic tex2html_wrap_inline2058 ; tex2html_wrap_inline2066 ; tex2html_wrap_inline2060 end;
 

Bezeichnung: Atomarer Bereich: Bereich innerhalb einer atomaren Aktion. Kritischer Bereich: auch für atomarer Bereich.  





parallel@rz.uni-mannheim.de
Mon Okt 28 14:38:25 PST 1996