Der Unterschied zwischen interner und externer Fragmentierung ist ein Thema, das für viele von Interesse ist, die ihr Computerwissen verbessern möchten. Bevor wir diesen Unterschied kennen, müssen wir sehen, was Fragmentierung ist. Die Fragmentierung ist ein Phänomen, das im Computerspeicher auftritt, z. Während die effiziente Nutzung des verfügbaren Raums behindert wird, verursacht dies auch Leistungsprobleme. Interne Fragmentierung tritt auf, wenn die Speicherzuweisung auf Partitionen fester Größe basiert, bei denen der verbleibende freie Speicherplatz dieses Steckplatzes nach einer kleinen Größe zugeordnet ist, die verschwendet wird. Eine externe Fragmentierung tritt auf, wenn das Speicher dynamisch zugewiesen wird, wenn nach dem Laden und Entladen mehrerer Slots hier und dort der freie Speicherplatz verteilt wird, anstatt zusammenhängend.
Betrachten Sie die obige Abbildung, in der ein Mechanismus zur Allokation mit fester Größe befolgt wird. Zunächst ist der Speicher leer und der Allocator hat den Speicher in Partitionen fester Größen unterteilt. Dann wurden später drei Programme mit dem Namen A, B, C auf die ersten drei Partitionen geladen, während die 4. Partition noch frei ist. Programm A entspricht der Größe der Partition, sodass diese Partition keine Verschwendung enthält, aber Programm B und Programm C sind kleiner als die Partitionsgröße. Zum Teil ITION 2 und PARTITION 3 gibt es noch freier Platz. Dieser freie Speicherplatz ist jedoch unbrauchbar, da der Speicher Allocator den Programmen nur vollständige Partitionen zuweist, aber keine T -Teile davon. Diese Verschwendung des freien Raums wird als interne Fragmentierung bezeichnet.
Im obigen Beispiel sind es gleich große feste Partitionen, aber dies kann sogar in einer Situation geschehen, in der Partitionen verschiedener fester Größen verfügbar sind. Normalerweise ist der Gedächtnis oder der schwerste Raum in Blöcke unterteilt, die normalerweise die Größe von 2, wie 2, 4, 8, 16 Bytes haben. Daher wird ein Programm oder eine Datei mit 3 Bytes einem 4 -Byte -Block zugewiesen, aber ein Byte dieses Blocks wird unbrauchbar, was eine interne Fragmentierung verursacht.
Betrachten Sie die obige Abbildung, in der die Speicherzuweisung dynamisch durchgeführt wird. In der dynamischen Speicherzuweisung weist der Allokator nur die genau benötigte Größe für dieses Programm zu. Der erste Speicher ist völlig kostenlos. Dann werden die Programme A, B, C, D und E unterschiedlicher Größen nacheinander geladen und in dieser Reihenfolge zusammenhängend in Speicher platziert. Später schließt Programm A und Programm C und sie werden aus dem Speicher entladen. Jetzt gibt es drei freie Speicherbereiche im Gedächtnis, aber sie sind nicht benachbart. Jetzt wird ein großes Programm namens Programm F geladen, aber keiner der freien Space -Blocks reicht für das Programm F nicht aus. Die Hinzufügung aller freien Räume reicht definitiv für das Programm F aus, aber aufgrund des Mangels an Adjazenz, dass der Raum für das Programm F unbrauchbar ist. Dies wird als externe Fragmentierung bezeichnet.
• Interne Fragmentierung tritt auf. Eine externe Fragmentierung tritt auf, wenn eine dynamische Speicherzuweisungstechnik verwendet wird.
• Interne Fragmentierung tritt auf, wenn eine Partition mit fester Größe einem Programm/einer Datei mit geringerer Größe zugewiesen wird als die Partition, die den Rest des Raums in dieser Partition unbrauchbar macht. Die externe Fragmentierung ist auf den Mangel an genügend benachbartem Speicherplatz nach dem Laden und Entladen von Programmen oder Dateien für einige Zeit zurückzuführen, da hier und da alle freien Speicherplatz verteilt sind.
• Die externe Fragmentierung kann durch Verdichtung abgebaut werden, wenn die zugewiesenen Blöcke auf eine Seite verschoben werden. Dieser Vorgang braucht jedoch Zeit und auch bestimmte kritische zugewiesene Bereiche, beispielsweise Systemdienste können nicht sicher verschoben werden. Wir können diesen Verdichtungsschritt auf Festplatten beobachten, wenn der Festplattenfragler in Windows ausgeführt wird.
• Eine externe Fragmentierung kann durch Mechanismen wie Segmentierung und Paging verhindert werden. Hier wird ein logischer, zusammenhängender virtueller Speicherplatz angegeben, während in Wirklichkeit die Dateien/Programme in Teile aufgeteilt und hier und da platziert werden.
• Die interne Fragmentierung kann verstümmelt werden, indem Partitionen mehrerer Größen vorhanden sind und ein Programm zugewiesen werden, das auf der besten Anpassung basiert. Die interne Fragmentierung ist jedoch nicht vollständig beseitigt.
Zusammenfassung:
Sowohl die interne Fragmentierung als auch die externe Fragmentierung sind Phänomene, bei denen das Gedächtnis verschwendet wird. Interne Fragmentierung erfolgt bei der Speicherzuordnung mit fester Größe, während die externe Fragmentierung bei der dynamischen Speicherzuweisung auftritt. Wenn eine zugewiesene Partition von einem Programm besetzt ist, das weniger als die Partition ist, wird der verbleibende Raum verschwendet, was eine interne Fragmentierung verursacht. Wenn nach dem Laden und Entladen von Programmen genügend benachbarter Raum nicht gefunden werden kann. Fragmentierung kann in jedem Speichergerät wie RAM, Festplatten und Flash -Laufwerken auftreten.