Unterschied zwischen interner und externer Fragmentierung

Das Hauptunterschied zwischen innerer und äußerer Fragmentierung ist das, Bei der internen Fragmentierung ist der einem Prozess zugewiesene Speicherblock groß, so dass die verbleibenden Teile nicht für einen anderen Prozess verwendet werden können. Bei der externen Fragmentierung reicht jedoch der gesamte Speicherplatz für einen Prozess aus. Es ist jedoch nicht zusammenhängend, so dass Speicherplatz nicht verwendet wird.

Fragmentierung ist der Prozess, bei dem ein freier Speicherplatz in kleinere Abschnitte unterteilt wird. Dies kann aufgrund von Schwierigkeiten bei der Zuordnung von Speicherblöcken zu einem Prozess auftreten, da sie kleiner als erforderlich sind. Dieses Problem kann zu Speicherverschwendung führen, da die Speicherblöcke nicht verwendet werden. Es gibt zwei Arten der Fragmentierung, die als interne und externe Fragmentierung bezeichnet werden.

Wichtige Bereiche

1. Was ist Fragmentierung?
       - Definition, Funktionalität
2. Was ist interne Fragmentierung?
      - Definition, Funktionalität
3. Was ist externe Fragmentierung?
     - Definition, Funktionalität
4. Unterschied zwischen interner und externer Fragmentierung
     - Vergleich der wichtigsten Unterschiede

Schlüsselbegriffe

Interne Fragmentierung, Externe Fragmentierung, Fragmentierung, Betriebssystem

Was ist Fragmentierung?

Wenn ein Prozess geladen und aus dem Speicher entfernt wird, wird dieser freie Speicherplatz in kleine Teile aufgeteilt. Diese Speicherblöcke sind klein und es ist nicht möglich, sie für denselben oder einen anderen Prozess zuzuordnen. Daher bleiben diese Speicherblöcke unbenutzt. Dieses Problem wird als Fragmentierung bezeichnet.

Nehmen Sie beispielsweise an, dass sich im Hauptspeicher ein Prozess (p1) befindet. Es dauert 4 MB Speicherplatz. Dann wird es aus dem Hauptspeicher entfernt und im Sekundärspeicher gespeichert. Der anfängliche Speicherplatz, der zu p1 gehörte, ist jetzt ein freier Speicherplatz. Dieser Speicherplatz ist in kleinere Abschnitte wie 2 MB und 2 MB unterteilt. Wenn der Prozess p1 dem Hauptspeicher zugeordnet werden muss, kann er den vorherigen Speicherplatz nicht verwenden, da er bereits geteilt ist. Dieser Speicherplatz bleibt also ungenutzt.

Was ist interne Fragmentierung?

Bei der internen Fragmentierung ist der einem Prozess zugewiesene Speicherblock größer als der erforderliche. Daher bleiben einige Teile des Speichers unbenutzt. Dieser Raum kann nicht für einen anderen Prozess verwendet werden. Angenommen, es gibt einen Prozess p1, der 3 MB beträgt. Für diesen Vorgang sind im Hauptspeicher 4 MB belegt. Die verbleibenden 1 MB können nicht für andere Prozesse verwendet werden. Diese 1 MB ist verschwendet. Diese Verschwendung wird als interne Fragmentierung bezeichnet.

Abbildung 1: Interne Fragmentierung

Was ist externe Fragmentierung?

Wenn der gesamte Speicherplatz für einen Prozess ausreicht, aber nicht kontinuierlich ist, ist es immer noch nicht möglich, diesen Speicherplatz für einen Prozess zu verwenden. Diese Art der Fragmentierung wird als externe Fragmentierung bezeichnet. Nehmen Sie an, dass der Prozess 4 MB beträgt. Der Speicher enthält 2 MB, 1 MB und 1 MB Speicherplatz. Der Gesamtspeicher reicht aus, um den Prozess zu speichern. Diese Räume sind jedoch nicht zusammenhängend, da sie sich an verschiedenen Orten befinden. Daher bleibt der Platz ungenutzt. Dies ist eine externe Fragmentierung.

Verdichtungs- oder Shuffle-Speicher ist eine Lösung für die externe Fragmentierung. Dadurch wird der gesamte freie Speicher in einem großen Block zusammengefasst.

Abbildung 2: Verdichtung

Gemäß dem obigen Diagramm gibt es nach p1 und p2 einen freien Raum. Nach p3, p4 und p5 gibt es ein Leerzeichen. Daher sind alle Prozesse zu einer Seite verdichtet. Jetzt gibt es einen durchgehenden Freiraum. Dieser freie Speicherplatz kann einem anderen Prozess zugewiesen werden. Alle freien Plätze sind an einem Ort verfügbar.

Unterschied zwischen interner und externer Fragmentierung

Definition

Bei der internen Fragmentierung handelt es sich um eine Form der Fragmentierung, die auftritt, wenn noch Speicherbereiche vorhanden sind, weil für einen Prozess große Speicherblöcke zugewiesen werden, als erforderlich. Bei der externen Fragmentierung handelt es sich um eine Form der Fragmentierung, die auftritt, wenn genügend Speicherplatz für den Prozess verfügbar ist, der verfügbare Speicherplatz jedoch nicht zusammenhängend ist.

Funktionalität

Bei der internen Fragmentierung ist der einem Prozess zugewiesene Speicherblock groß. Daher bleibt der verbleibende Teil unbenutzt, da er keinem anderen Prozess zugeordnet werden kann. Bei der externen Fragmentierung reicht der Speicherplatz für einen Prozess aus, ist jedoch nicht zusammenhängend. Daher kann dieser Platz nicht für die Zuordnung verwendet werden.

Lösung

Die Lösung für die interne Fragmentierung besteht darin, Partitionen zuzuordnen, die für die Prozesse groß genug sind. Die Verdichtung oder der Shuffle-Speicherinhalt ist die Lösung, um eine externe Fragmentierung zu überwinden.

Fazit

Bei der internen Fragmentierung ist der einem Prozess zugewiesene Speicherblock groß, so dass die verbleibenden Teile nicht für einen anderen Prozess verwendet werden können. Bei der externen Fragmentierung reicht der gesamte Speicherplatz für einen Prozess aus, ist jedoch nicht zusammenhängend, sodass der Speicherplatz nicht verwendet wird. Dies ist der Hauptunterschied zwischen interner und externer Fragmentierung.

Referenz:

1. „Betriebssystem-Speicherverwaltung“. Www.tutorialspoint.com, Tutorials Point, 8. Januar 2018, hier erhältlich.