Acquire- und Release-Speicherbarrieren

Acquire und release Speicherbarrieren (fences) garantieren ähnliche Synchronisations- und Ordnungsbedingungen wie atomare Operationen mit Acquire-Release-Semantik. Ähnliche, denn die Unterschiede stecken im Detail.

Weiterlesen...
Gelesen: 12598

Zäune als Speicherbarrieren

Die zentrale Idee von std::atomic_thread_fence ist es, Synchronisations- und Ordnungsbedingungen zwischen Threads ohne Operationen auf atomaren Variablen zu etablieren.

Weiterlesen...
Gelesen: 12576

memory_order_consume

std::memory_order_consume ist das legendärste der sechs Speichermodelle. Dieser besondere Ruf ist zwei Tatsachen geschuldet. Zum einen ist die std::memory_order_consume Ordnung sehr verständnisresistent. Zum andern hat es meines Wissens noch kein Compiler umgesetzt.

Weiterlesen...
Gelesen: 11627

Transitivität der Acquire-Release-Semantik

Eine release-Operation synchronisiert sich mit einer acquire-Operation auf der gleichen atomaren Variable und erzeugt dazu noch eine Ordnungsbedingung. Damit lassen sich Threads auf performante Weise synchronisieren, wenn sie auf einer gemeinsamen atomaren Variablen agieren. Doch wie lassen sich zwei Threads mit der Acquire-Release-Semantik synchronisieren, wenn sie auf keiner gemeinsamen atomaren Variablen agieren? Eine globale Ordnung der Threads mit Hilfe der Sequenziellen Konsistenz ist oft zu schwergewichtig.

Weiterlesen...
Gelesen: 9853

Relaxed-Semantik

Mit der Relaxed-Semantik sind wir am Ende der Skala angelangt. Die Relaxed-Semantik ist das schwächste C++-Speichermodell und sichert nur zu, dass die Operationen auf atomaren Variablen atomar sind.

Weiterlesen...
Gelesen: 9378

Acquire-Release-Semantik

Mit der Acquire-Release-Semantik wird das C++-Speichermodell richtig spannend. Denn nun gilt es nicht mehr, die Synchronisation von Threads zu betrachten, sondern die Synchronisation auf der gleichen atomaren Variable in verschiedenen Threads.

Weiterlesen...
Gelesen: 11575

Sequenzielle Konsistenz angewandt

In dem Artikel sequenzielle Konsistenz habe ich bereits das Defaul-Speichermodell vorgestellt. Dieses Modell, in dem die Aktionen aller Threads einer globalen Reihenfolge oder auch eines globalen Zeittaks folgen, besitzt einen großen Vorteil und einen großen Nachteil.

Weiterlesen...
Gelesen: 16155

Synchronisations- und Ordnungsbedingungen

Mit diesem Artikel geht unsere Tour in das C++-Speichermodell ein Stückchen tiefer. Haben sich die bisherigen Artikel mit der Atomizität der atomaren Variablen beschäftigt, so geht es nun um die Synchronisations- und Ordnungsbedingungen von Operationen.

Weiterlesen...
Gelesen: 14821

Atomare Datentypen

Neben Wahrheitswerten lassen sich atomare Datetypen zu Zeigern, integralen Typen und eigenen Datentypen erzeugen. Für eigene Datentypen gelten besondere Regeln.

Weiterlesen...
Gelesen: 23532

Mentoring

Stay Informed about my Mentoring

 

Rezensionen

Tutorial

Besucher

Heute 1830

Gestern 3725

Woche 7631

Monat 34948

Insgesamt 3887662

Aktuell sind 594 Gäste und keine Mitglieder online

Kubik-Rubik Joomla! Extensions

Abonniere den Newsletter (+ pdf Päckchen)

Beiträge-Archiv

Sourcecode

Neuste Kommentare