Sequentielle Konsistenz

aus Wikipedia, der freien Enzyklopädie

Sequentielle Konsistenz (engl. sequential consistency) ist ein Konsistenzmodell für das Speichersystem von Mehrprozessorsystemen.

Sie ist durch folgende Eigenschaft definiert:

“the result of any execution is the same as if the operations of all the processors were executed in some sequential order, and the operations of each individual processor appear in this sequence in the order specified by its program.”

„Das Ergebnis einer Ausführung ist dasselbe wie wenn die Befehle aller Prozessoren in einer beliebigen aber festen sequentiellen Reihenfolge ausgeführt würden und die Befehle jedes einzelnen Prozessors werden in der durch das Programm vorgegebenen Reihenfolge ausgeführt.“

Leslie Lamport: How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs[1]
Während die Reihenfolge von A1, B1 und C1 (A1 vor B1 vor C1) sowie von A2 und B2 (A2 vor B2) festgelegt ist, ist die Reihenfolge der Befehle zwischen Prozessoren nicht definiert. Daher könnte A1 vor oder nach A2 und B1 vor oder nach B2 ausgeführt werden.
Ein Schalter verbindet nacheinander immer genau einen Prozessor mit dem Speicher.
Modell der sequentiellen Konsistenz

Jeder einzelne Prozessor führt also die Befehle in genau der Reihenfolge aus, in der sie im Programm festgelegt sind. Dagegen gibt es keine Aussage zur Reihenfolge der Befehle verschiedener Prozessoren, wie folgendes Beispiel verdeutlicht: Sequentielle Konsistenz führt dazu, dass Speicheroperationen (Lesen, Schreiben) atomar erscheinen.[2]

Damit ein Mehrprozessorsystem sequentielle Konsistenz aufweist, müssen folgende Bedingungen erfüllt sein:[1]

  • Jeder Prozessor führt Speicherzugriffe in der durch das Programm vorgegebenen Reihenfolge aus.
  • Speicherzugriffe von allen Prozessoren auf ein und dieselbe Speicherzelle werden in FIFO-Reihenfolge bedient.

Die Eigenschaft der sequentiellen Konsistenz kann durch einen Schalter modelliert werden, der zu jedem Zeitpunkt einen der Prozessoren mit dem Speicher verbindet.[2] Alle Prozessoren arbeiten ihr jeweiliges Programm sequentiell ab und der Schalter sorgt für die Serialisierung der Speicherzugriffe der Prozessoren.

Einzelnachweise

  1. a b Leslie Lamport: How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs. In: IEEE Transactions on Computers C-28. Band 9, September 1979 (microsoft.com [abgerufen am 25. November 2017]).
  2. a b Sarita V. Adve, Kourosh Gharachorloo: Shared Memory Consistency Models: A Tutorial. Hrsg.: Western Research Laboratory. 1995.