Empfohlen, 2019

Tipp Der Redaktion

Unterschied zwischen interner und externer Fragmentierung

Immer wenn ein Prozess aus dem physischen Speicherblock geladen oder aus diesem entfernt wird, wird ein kleines Loch im Speicherbereich erstellt, der als Fragment bezeichnet wird. Aufgrund der Fragmentierung kann das System den zusammenhängenden Speicherplatz einem Prozess nicht zuordnen, obwohl er über die angeforderte Speichermenge verfügt, jedoch nicht zusammenhängend. Die Fragmentierung wird weiter in zwei Kategorien unterteilt: interne und externe Fragmentierung.

Sowohl die interne als auch die externe Klassifizierung beeinflussen die Datenzugriffsgeschwindigkeit des Systems. Sie unterscheiden sich grundlegend voneinander, dh die interne Fragmentierung tritt auf, wenn dem Prozess Speicherblöcke mit fester Größe zugewiesen werden, ohne die Größe des Prozesses zu berücksichtigen, und die externe Fragmentierung tritt auf, wenn den Prozessen Speicher dynamisch zugewiesen wird. Lassen Sie uns weiter gehen und die Unterschiede, Gründe und Lösungen hinter der internen und externen Fragmentierung mit Hilfe der unten gezeigten Vergleichstabelle diskutieren.

Vergleichstabelle

VergleichsgrundlageInterne FragmentierungExterne Fragmentierung
BasicEs tritt auf, wenn Speicherblöcke fester Größe den Prozessen zugewiesen werden.Es tritt auf, wenn Speicherplatz mit variabler Größe den Prozessen dynamisch zugewiesen wird.
AuftretenWenn der dem Prozess zugewiesene Speicher etwas größer ist als der vom Prozess angeforderte Speicher, wird freier Speicherplatz im zugewiesenen Block geschaffen, der interne Fragmentierung verursacht.Wenn der Prozess aus dem Speicher entfernt wird, wird der freie Speicherplatz im Speicher erstellt, der eine externe Fragmentierung verursacht.
LösungDer Speicher muss in Blöcke mit variabler Größe partitioniert sein und dem Prozess den am besten geeigneten Block zuweisen.Verdichtung, Paging und Segmentierung.

Definition der internen Fragmentierung

Interne Fragmentierung tritt auf, wenn der Speicher in Blöcke fester Größe unterteilt ist . Bei jeder Prozessanforderung für den Speicher wird der Block mit fester Größe dem Prozess zugewiesen. Wenn der dem Prozess zugewiesene Speicher etwas größer ist als der angeforderte Speicher, besteht der Unterschied zwischen zugewiesenem und angefordertem Speicher in der internen Fragmentierung .

Dieser übrig gebliebene Platz im Block fester Größe kann keinem Prozess zugeordnet werden, da er nicht ausreicht, um die Speicheranforderung des Prozesses zu erfüllen. Verstehen wir die interne Fragmentierung anhand eines Beispiels. Der Speicherplatz ist in Blöcke mit einer Größe von 18.464 Bytes unterteilt. Angenommen, dem Prozess wird eine Prozessanforderung für 18.460 Bytes und ein partitionierter Block mit 18.464 Bytes mit fester Größe zugewiesen. Das Ergebnis ist 4 Bytes von 18.464 Bytes, die leer bleiben, was die interne Fragmentierung darstellt.

Der Aufwand für das Nachverfolgen der durch interne Fragmentierung erzeugten inneren Löcher ist wesentlich größer als die Anzahl der inneren Löcher. Das Problem der internen Fragmentierung kann gelöst werden, indem der Speicher in einen Block variabler Größe aufgeteilt wird und der Block mit der besten Größe einem Prozess zugewiesen wird, der den Speicher anfordert. Das Problem der internen Fragmentierung wird jedoch nicht vollständig beseitigt, sondern bis zu einem gewissen Grad reduziert.

Definition der externen Fragmentierung

Eine externe Fragmentierung tritt auf, wenn im Speicher ausreichend Speicherplatz vorhanden ist, um die Speicheranforderung eines Prozesses zu erfüllen. Die Speicheranforderung des Prozesses kann jedoch nicht erfüllt werden, da der zur Verfügung stehende Speicher nicht zusammenhängend ist. Entweder wenden Sie eine First-Fit- oder eine Best-Fit-Speicherzuweisungsstrategie an, die eine externe Fragmentierung verursacht.

Wenn ein Prozess aus dem Speicher geladen und aus dem Speicher entfernt wird, erstellt der freie Speicherplatz die Lücke im Speicherplatz, und es gibt viele solcher Lücken im Speicherplatz. Dies wird als externe Fragmentierung bezeichnet. Obwohl die erste Anpassung und die beste Anpassung die Stärke der externen Fragmentierung beeinflussen können, kann sie nicht vollständig beseitigt werden. Die Verdichtung kann die Lösung für die externe Fragmentierung sein.

Der Kompressionsalgorithmus mischt den gesamten Speicherinhalt auf eine Seite und gibt einen großen Speicherblock frei. Der Verdichtungsalgorithmus ist jedoch teuer. Es gibt eine alternative Lösung zum Lösen des Problems der externen Fragmentierung, die es einem Prozess ermöglicht, physischen Speicher auf nicht zusammenhängende Weise zu erwerben. Die Techniken, um diese Lösung zu erreichen, sind Paging und Segmentierung.

Hauptunterschiede zwischen interner und externer Fragmentierung

  1. Der Hauptgrund für das Auftreten einer internen und externen Fragmentierung besteht darin, dass eine interne Fragmentierung auftritt, wenn der Speicher in Blöcke mit fester Größe partitioniert wird , während eine externe Fragmentierung auftritt, wenn der Speicher in Blöcke mit variabler Größe partitioniert wird.
  2. Wenn der für den Prozess zugewiesene Speicherblock etwas größer ist als der angeforderte Speicher, führt der im zugewiesenen Speicherblock verbleibende freie Speicherplatz zu einer internen Fragmentierung. Wenn andererseits der Prozess aus dem Speicher entfernt wird, wird freier Speicherplatz geschaffen, der zu einer Lücke im Speicher führt, die als externe Fragmentierung bezeichnet wird.
  3. Das Problem der internen Fragmentierung kann gelöst werden, indem der Speicher in Blöcke mit variabler Größe aufgeteilt wird und dem anfordernden Prozess der am besten geeignete Block zugewiesen wird. Die Lösung für die externe Fragmentierung ist jedoch die Komprimierung, die Implementierung ist jedoch kostspielig. Daher müssen die Prozesse den physischen Speicher auf nicht zusammenhängende Weise erwerben können. Dazu wird die Technik des Paging und der Segmentierung eingeführt.

Fazit:

Das Problem der internen Fragmentierung kann reduziert, aber nicht vollständig beseitigt werden. Das Paging und die Segmentierung helfen bei der Nutzung des durch externe Fragmentierung freigegebenen Speicherplatzes, da ein Prozess den Speicher auf nicht zusammenhängende Weise belegen kann.

Top