logo

Was ist Thrash?

In der Informatik Prügeln ist die schlechte Leistung eines virtuellen Speicher- (oder Paging-)Systems, wenn dieselben Seiten wiederholt geladen werden, weil nicht genügend Hauptspeicher vorhanden ist, um sie im Speicher zu behalten. Je nach Konfiguration und Algorithmus kann sich der tatsächliche Durchsatz eines Systems um mehrere Größenordnungen verschlechtern.

In der Informatik Prügel Tritt auf, wenn die virtuellen Speicherressourcen eines Computers überbeansprucht werden, was zu einem ständigen Zustand von Paging und Seitenfehlern führt und die meisten Verarbeitungsvorgänge auf Anwendungsebene behindert. Dies führt dazu, dass die Leistung des Computers abnimmt oder zusammenbricht. Die Situation kann auf unbestimmte Zeit andauern, bis der Benutzer einige laufende Anwendungen schließt oder die aktiven Prozesse zusätzliche virtuelle Speicherressourcen freigeben.

Um mehr über Thrashing zu erfahren, müssen wir zunächst etwas über Seitenfehler und Swapping wissen.

    Seitenfehler:Wir wissen, dass jedes Programm in einige Seiten unterteilt ist. Ein Seitenfehler tritt auf, wenn ein Programm versucht, auf Daten oder Code in seinem Adressraum zuzugreifen, sich aber derzeit nicht im System-RAM befindet.Tauschen:Immer wenn ein Seitenfehler auftritt, versucht das Betriebssystem, diese Seite aus dem Sekundärspeicher abzurufen und sie mit einer der Seiten im RAM auszutauschen. Dieser Vorgang wird als Austauschen bezeichnet.

Prügel Dies ist der Fall, wenn der Seitenfehler und das Auslagern sehr häufig und häufiger auftritt und das Betriebssystem dann mehr Zeit für das Auslagern dieser Seiten aufwenden muss. Dieser Zustand im Betriebssystem wird als Thrashing bezeichnet. Aufgrund von Thrashing wird die CPU-Auslastung reduziert oder vernachlässigbar.

Was ist Thrash?

Das Grundkonzept besteht darin, dass es zu viele und zu häufige Seitenfehler gibt, wenn einem Prozess zu wenige Frames zugewiesen werden. Dadurch würde die CPU keine wertvolle Arbeit leisten und die CPU-Auslastung würde drastisch sinken.

Der Langzeitplaner würde dann versuchen, die CPU-Auslastung zu verbessern, indem er einige weitere Prozesse in den Speicher lädt und so den Multiprogramming-Grad erhöht. Leider würde dies zu einer weiteren Verringerung der CPU-Auslastung führen und eine Kettenreaktion mit höheren Seitenfehlern auslösen, gefolgt von einem Anstieg des Multiprogramming-Grades, dem so genannten Thrashing.

Algorithmen beim Thrashing

Immer wenn Thrashing beginnt, versucht das Betriebssystem, entweder den globalen Seitenersetzungsalgorithmus oder den lokalen Seitenersetzungsalgorithmus anzuwenden.

1. Globaler Seitenaustausch

Da die globale Seitenersetzung jede beliebige Seite bringen kann, versucht sie, immer mehr Seiten zu laden, wenn ein Thrashing festgestellt wird. Was aber tatsächlich passieren wird, ist, dass kein Prozess genügend Frames bekommt und dadurch das Thrashing immer mehr zunimmt. Daher ist der globale Seitenersetzungsalgorithmus nicht geeignet, wenn Thrashing auftritt.

2. Lokale Seitenersetzung

Im Gegensatz zum globalen Seitenersetzungsalgorithmus wählt die lokale Seitenersetzung Seiten aus, die nur zu diesem Prozess gehören. Es besteht also die Möglichkeit, die Prügel zu reduzieren. Es ist jedoch erwiesen, dass die lokale Seitenersetzung viele Nachteile mit sich bringt. Daher ist die lokale Seitenersetzung nur eine Alternative zur globalen Seitenersetzung in einem Thrashing-Szenario.

Ursachen für Thrashing

Programme oder Arbeitslasten können Thrashing verursachen und zu schwerwiegenden Leistungsproblemen führen, wie zum Beispiel:

  • Bei zu geringer CPU-Auslastung erhöhen wir den Multiprogramming-Grad durch die Einführung eines neuen Systems. Es wird ein globaler Seitenersetzungsalgorithmus verwendet. Der CPU-Scheduler erkennt die sinkende CPU-Auslastung und erhöht den Grad der Multiprogrammierung.
  • Die CPU-Auslastung wird gegen den Multiprogramming-Grad aufgetragen.
  • Mit zunehmendem Multiprogramming-Grad steigt auch die CPU-Auslastung.
  • Wird der Multiprogramming-Grad weiter erhöht, kommt es zu Thrashing und die CPU-Auslastung sinkt stark.
  • Um die CPU-Auslastung zu erhöhen und Thrashing zu stoppen, müssen wir an diesem Punkt den Grad der Multiprogrammierung verringern.

So vermeiden Sie Thrashing

Thrashing hat einige negative Auswirkungen auf den Festplattenzustand und die Systemleistung. Daher ist es notwendig, einige Maßnahmen zu ergreifen, um dies zu vermeiden. Um das Thrashing-Problem zu lösen, gibt es die folgenden Methoden, wie zum Beispiel:

    Passen Sie die Größe der Auslagerungsdatei an:Wenn die System-Auslagerungsdatei nicht richtig konfiguriert ist, kann es auch zu Festplatten-Thrashing kommen.Erhöhen Sie die RAM-Größe:Da unzureichender Arbeitsspeicher zu einer Überlastung der Festplatte führen kann, besteht eine Lösung darin, dem Laptop mehr RAM hinzuzufügen. Mit mehr Arbeitsspeicher kann Ihr Computer Aufgaben problemlos bewältigen und muss nicht übermäßig arbeiten. Im Allgemeinen ist es die beste langfristige Lösung.Verringern Sie die Anzahl der auf dem Computer ausgeführten Anwendungen:Wenn zu viele Anwendungen im Hintergrund ausgeführt werden, wird Ihre Systemressource stark beansprucht. Und die verbleibende Systemressource ist langsam, was zu Überlastung führen kann. Daher geben einige Anwendungen beim Schließen einige Ressourcen frei, so dass Sie ein gewisses Maß an Thrashing vermeiden können.Programme ersetzen:Ersetzen Sie die Programme, die viel Speicher beanspruchen, durch Äquivalente, die weniger Speicher beanspruchen.

Techniken zur Verhinderung von Thrashing

Das Ersetzen lokaler Seiten ist besser als das Ersetzen globaler Seiten, hat jedoch viele Nachteile und ist daher manchmal nicht hilfreich. Daher sind im Folgenden einige andere Techniken aufgeführt, die zur Behandlung von Thrashing verwendet werden:

1. Lokalitätsmodell

Eine Lokalität ist eine Reihe von Seiten, die gemeinsam aktiv genutzt werden. Das Ortsmodell besagt, dass sich ein Prozess bei der Ausführung von einem Ort zum anderen bewegt. Daher besteht ein Programm im Allgemeinen aus mehreren verschiedenen Orten, die sich überschneiden können.

Wenn beispielsweise eine Funktion aufgerufen wird, definiert sie einen neuen Ort, an dem Speicherverweise auf die Funktionsaufrufanweisungen, lokale und globale Variablen usw. vorgenommen werden. Wenn die Funktion beendet wird, verlässt der Prozess in ähnlicher Weise diesen Ort.

2. Working-Set-Modell

Dieses Modell basiert auf dem oben genannten Konzept des Lokalitätsmodells.

Das Grundprinzip besagt, dass, wenn wir einem Prozess genügend Frames zuweisen, um seinen aktuellen Standort zu berücksichtigen, er nur dann einen Fehler verursacht, wenn er sich an einen neuen Standort bewegt. Wenn die zugewiesenen Frames jedoch kleiner als die Größe des aktuellen Standorts sind, kommt es zwangsläufig zu einem Ausfall des Prozesses.

Gemäß diesem Modell, basierend auf Parameter A, ist der Arbeitssatz als der Satz von Seiten in den aktuellsten „A“-Seitenverweisen definiert. Daher würden immer alle aktiv genutzten Seiten Teil des Arbeitssatzes sein.

Postorder-Traversierung des Binärbaums

Die Genauigkeit des Arbeitssatzes hängt vom Wert des Parameters A ab. Wenn A zu groß ist, können sich Arbeitssätze überlappen. Andererseits wird bei kleineren Werten von A die Lokalität möglicherweise nicht vollständig abgedeckt.

Wenn D der Gesamtbedarf an Frames und WSS istichist die Arbeitssatzgröße für Prozess i,

D = ⅀ WSSich

Wenn nun „m“ die Anzahl der im Speicher verfügbaren Frames ist, gibt es zwei Möglichkeiten:

  • D>m, d. h. der Gesamtbedarf übersteigt die Anzahl der Frames, dann kommt es zu Thrashing, da einige Prozesse nicht genügend Frames erhalten würden.
  • D<=m, then there would be no thrashing.< li>

Wenn genügend zusätzliche Frames vorhanden sind, können weitere Prozesse in den Speicher geladen werden. Wenn andererseits die Summe der Working-Set-Größen die Verfügbarkeit der Frames übersteigt, müssen einige Prozesse angehalten (aus dem Speicher ausgelagert) werden.

Diese Technik verhindert Thrashing und gewährleistet gleichzeitig den größtmöglichen Grad an Multiprogrammierung. Dadurch wird die CPU-Auslastung optimiert.

3. Häufigkeit von Seitenfehlern

Ein direkterer Ansatz zur Bewältigung von Thrashing ist die Verwendung des Page-Fault-Frequenz-Konzepts.

Was ist Thrash?

Das mit Thrashing verbundene Problem ist die hohe Seitenfehlerrate. Daher besteht das Konzept hier darin, die Seitenfehlerrate zu kontrollieren.

Wenn die Seitenfehlerrate zu hoch ist, weist dies darauf hin, dass dem Prozess zu wenige Frames zugewiesen sind. Im Gegenteil, eine niedrige Seitenfehlerrate weist darauf hin, dass der Prozess zu viele Frames hat.

Für die gewünschte Seitenfehlerrate können Ober- und Untergrenzen festgelegt werden, wie im Diagramm dargestellt.

Wenn die Seitenfehlerrate unter den unteren Grenzwert fällt, können Frames aus dem Prozess entfernt werden. Wenn die Seitenfehlerrate die Obergrenze überschreitet, können dem Prozess ebenfalls mehr Frames zugewiesen werden.

Mit anderen Worten: Der grafische Zustand des Systems sollte auf den rechteckigen Bereich beschränkt bleiben, der im gegebenen Diagramm gebildet wird.

Wenn die Seitenfehlerrate hoch ist und keine freien Frames vorhanden sind, können einige der Prozesse angehalten und ihnen zugewiesene Prozesse anderen Prozessen zugewiesen werden. Die angehaltenen Prozesse können später neu gestartet werden.