Was ist der Transaktionsgedächtnis?
In der Software ist das Schema des Transaktionsspeichers eine Vorgehensweise für die Multithread -Programmierung, bei der Transaktionen verwendet werden, die denen ähneln, die eine Datenbank verwendet. Wenn zwei oder mehr Threads gleichzeitig versuchen, auf dieselben Daten zuzugreifen, können viele verschiedene unerwünschte Situationen in Fällen führen, in denen das Ergebnis eines Programms von der Reihenfolge der Thread -Zugriffs abhängt. Normalerweise ist eine Reihenfolge gewünscht und bei Multithreading sind Schlösser die vorherrschende und einfachste Möglichkeit, sicherzustellen, dass nur ein einzelner Thread zu Zugriff auf eine bestimmte Ressource gleichzeitig hat. Ein Schloss kann dauerhaft werden, wenn ein unerwarteter Fehler auftritt, und Schlösser können unvorhersehbare Probleme mit Parallelität wie Deadlock oder Prioritätsumkehr bewirken. Aufgrund der sehr feinkörnigen Schlösser beinhaltet ein weiteres Problem, dass der Code letztendlich die meiste Zeit zwischen Sperren, Kontextwechsel und UNL verbringtohnmächtig. Dies ist ein entscheidendes Problem, da es dazu führen kann, dass die Code mehr Zeit für diese Aktionen als für andere, wichtige Arbeiten im Programm ausführt. Im Gegensatz dazu können grobkörnige Schlösser eine verminderte Verarbeitungsleistung und eine verringerte Parallelität verursachen.
Die Probleme im Transaktionsspeicher werden von erweiterten Schlössern angesprochen, einschließlich „Sperren“ von C#, Read-Write-Sperren, Schreibbarrieren usw. Eine der Hauptprioritäten in Bezug auf den Transaktionsspeicher besteht darin, keine Schlösser und keine unnötige Verarbeitungszeit zu haben. Es wird normalerweise vereinbart, dass eine gemeinsame Datenstruktur frei von Schlössern ist, wenn durch ihre Operationen keine gegenseitige Ausschließung erforderlich ist. Datenstrukturen, die gemeinsam genutzt und frei von Schlössern sind, vermeiden häufig assoziierte Probleme mit Standardverriegelungstechniken, wenn sie sich in Systemen befinden, die sehr gleichzeitig sind.
Das Modell der Transaktionsgedächtniskohärenz und -konsistenz (TCC) ist neu,Vorgeschlagenes Modell zum gemeinsamen Speicher. Nach dem Modell sind Atomtransaktionen ausnahmslos grundlegende Einheiten der folgenden: Parallele Arbeit, Gedächtniskohärenz, Kommunikation und Konsistenz der Speicherreferenz. Das TCC -Modell erleichtert auch die parallele Software, indem die Synchronisation eliminiert wird, die Standards -Sperren oder Semaphoren verwendet. Durch Hardware kombiniert TCC auch jede Schreibweise aus jeder Region des Transaktionsvorkommens in ein Paket, um das Paket atomisch an einen Speicherzustand zu übertragen, der dauerhaft geteilt wird. Zusätzlich zur vereinfachten Kohärenzhardware bedeutet dies, dass die erforderlichen Niedrigdauermeldungen und eine vollständige Beseitigung bestimmter Standard-Kohärenzprotokolle besteht.