Was ist falsches Teilen?
Falsches Sharing ist eine Situation, die in einem Computerprogramm auftreten kann, wenn zwei Anwendungen, die gleichzeitig ausführen, in derselben logischen Speicherregion zugreifen, die jedes Programm oder der Prozess in seinem eigenen Cache gespeichert hat. Die Daten in den Cache jeder Anwendung werden aus einer gemeinsamen Quelle kopiert. Durch das Ändern eines Cache müssen die anderen aus der Quelle neu geladen werden. Der falsche Aspekt der Freigabe entsteht, wenn sich die Änderungen an der Cache -Linie von einem Programm nicht auf die Daten auswirken, die das zweite Programm verwendet. In diesem Fall ist es eine Verschwendung von Systemressourcen und kann die Leistung des Programms negativ beeinflussen. Das Problem der falschen Freigabe ist schwer zu erkennen, da es sich nicht um ein direktes Ergebnis eines in den Anwendungen enthaltenen Codes handelt, obwohl es wirksame Möglichkeiten gibt, falsche Freigaben zu verhindern, z.
Einer der Hauptgründe, warum eine falsche Freigabe auftreten kann, finden Sie in der Art und Weise, wie ein Betriebssystem oder Hardware das Lesen und Schreiben von Daten behandeln. Wenn Informationen von einer Festplatte oder einer anderen Quelle von einem Programm gelesen oder verfasst werden, wird sie normalerweise in einen temporären Cache geladen, sodass schnell zugegriffen werden kann. Die Menge an Informationen, die vom Quellort zwischengespeichert werden, wird als Cache -Zeile bezeichnet und ist ein logischer Speicherblock, der normalerweise zwischen 2 Bytes und 256 Bytes liegen kann. Unter einigen Betriebssystemen oder Systemarchitekturen können Programme gleichzeitig ausführen, z. B. in der parallelen Verarbeitung. Dies bedeutet, dass zwei separate Programme versuchen können, in derselben Cache -Zeile auf Informationen zuzugreifen, sodass jedes Programm eine eigene Kopie der Quelldaten enthält, wodurch Änderungen in einem Cache nicht in den anderen Cache reflektiert werden können, was die von ihnen gehaltenen Daten ungültig macht.
Es gibt eine Reihe von Mechanismen, die für HA eingesetzt werdenNdle die Situation, in der zwei Programme versuchen, auf die gleiche Cache -Linie zuzugreifen, aber das Ergebnis ist jedoch, dass ein Programm gezwungen ist, seinen Cache mit den aktualisierten Informationen, das das andere Programm geändert hat, neu zu laden. Diese Art von Vorfall wird als falsche Freigabe bezeichnet, wenn die Daten in der Cache -Zeile, auf die jedes Programm zugreift, nicht miteinander verbunden ist. Daher ist das Erzwingen eines Programms zum Nachladen des Cache eine Verschwendung von Verarbeitungsleistung und anderen Ressourcen. Dies ist am häufigsten ein Problem für ein Programm, das die Informationen in seinem Cache niemals ändern wird. Daher besteht kein Risiko, dass die Überschreibung des Anwendung den anderen Prozess durchgeführt hat.
Es gibt zwei vorherrschende Möglichkeiten, die Auswirkungen des falschen Teilens zu verhindern oder zu mildern. Das erste besteht darin, vor oder nach den Daten im Speicher leere Informationen hinzuzufügen und sie im Wesentlichen in eine separate Cache -Zeile zu zwingen, auf die nicht von einem anderen Programm zugegriffen wird. Die zweite Methode besteht darin, die Häufigkeit des Lesens und Schreibens in die Cache -Linie einzuschränken, damit sie als Littl neu geladen wirdE wie möglich. Komplexere Lösungen umfassen das Management auf Cache-Ebene oder sogar Änderungen an der Umstellung eines Betriebssystems.