Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

C++: Speichermodell

Bruch der sequenziellen Konsistenz im Vertrag

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Mit dem Bruch der sequenziellen Konsistenz in der lock-freien Ausführung des Vertrags betritt man eindeutig die Expertendomäne.
03:08

Transkript

In dieser Lektion möchte ich Ihnen die unterste Abstufung des Vertrags oder auch das Herz des C++-Speichermodells genauer vorstellen. Auf oberster Ebene ist die sogenannte "Sequenzielle Konsistenz", nennt sich auch "Strong Memory Model". Es zeichnet sich dadurch aus, dass es sowas wie einen globalen Zeitgeber gibt. Was heißt das? Das heißt, die Instruktionen der Threads folgen einem globalen Zeitgeber wie einem Uhrtakt. Anders ausgedrückt, sobald eine Instruktion in einem Schritt ausgeführt wird, ist diese Instruktion oder auch der Wert, der da verändert wird, automatisch in allen anderen Threads sichtbar, wie so ein globaler Zeitgeber, an den sich alle Threads halten müssen. Das ist das Speichermodell, das per Default in C++ gilt. Das ist aber auch das Speichermodell, das Sie von Java oder auch C# kennen. C++ geht aber noch ein paar Schritte weiter. C++ erlaubt den Bruch der sequenziellen Konsistenz. Sequenzielle Konsistenz hieß es aus dem Grund, weil die Threads sich synchronisieren. Das heißt, jeder Thread sieht die Operationen von jedem anderen Thread in der genau gleichen Reihenfolge. Das gilt bei dem Bruch der sequenziellen Konsistenz nicht mehr, z. B. bei der Acquire-Release-Semantik. Hier gibt es keine Synchronisation mehr zwischen den Threads, sondern eine Synchronisation zwischen atomaren Operationen auf der gleichen atomaren Variablen. Das habe ich jetzt ein bisschen wirken lassen. Das heißt, es gibt zum Beispiel eine Schreibeoperation auf einer atomaren Variable im Thread A und eine Leseoperation auf der gleichen atomaren Variablen im Thread B und diese beiden Operationen synchronisieren sich miteinander. Also wohlgemerkt nicht die Threads, sondern nur die atomaren Operationen auf der gleichen atomaren Variable. Damit haben Sie viel weniger Synchronisationsaufwand und damit sind die Programme natürlich tendenziell schneller. Dann kommen wir zur letzten Abstufung, das ist die sogenannte Relaxed-Semantik. Die nennt sich "Weak Memory Model" aus dem einfachen Grund, weil es keine Zusicherungen mehr gibt oder nur ganz schwache Zusicherungen. Hier ist es durchaus möglich, dass ein Thread 1 Operationen in der Reihenfolge d), e) ausführt, aber dass ein Thread 2 die Operationen in der Reihenfolge e), d) wahrnimmt, also genau in der umgekehrten Reihenfolge. Weil das so vollkommen unserer Intuition widerspricht, nenne ich das auch gerne "den Bruch der natürlichen Intuition". In dieser Lektion habe ich Ihnen die unterste Ebene des Vertrags genauer vorgestellt. Die unterste Ebene des Vertrags, die aus drei Abstufungen besteht: aus der sogenannten Sequenziellen Konsistenz, der Acquire-Release-Semantik und der Relaxed-Semantik.

C++: Speichermodell

Verstehen und nutzen Sie die Konzepte und die zugrundeliegenden TEchnolgien des Speichermodells in C++.

1 Std. 29 min (29 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:24.11.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!