Interne und externe Fragmentierung
Der Unterschied zwischen interner und externer Fragmentierung ist ein Thema, das viele interessiert, die ihre Computerkenntnisse verbessern möchten. Bevor wir diesen Unterschied erkennen, müssen wir sehen, was Fragmentierung ist. Fragmentierung ist ein Phänomen, das im Computerspeicher wie RAM (Random Access Memory) oder auf Festplatten auftritt und zu Verschwendung und ineffizienter Nutzung des freien Speicherplatzes führt. Die effiziente Nutzung des verfügbaren Speicherplatzes wird zwar behindert, dies führt jedoch auch zu Leistungsproblemen. Interne Fragmentierung tritt auf, wenn die Speicherzuweisung auf Partitionen fester Größe basiert, wobei nach dem Zuweisen einer kleinen Anwendung zu einem Steckplatz der verbleibende freie Speicherplatz dieses Steckplatzes verschwendet wird. Externe Fragmentierung tritt auf, wenn Speicher dynamisch zugewiesen wird, wobei nach dem Laden und Entladen mehrerer Slots hier und da der freie Speicherplatz verteilt und nicht zusammenhängend ist.
Was ist interne Fragmentierung?
Betrachten Sie die obige Abbildung, in der ein Speicherzuweisungsmechanismus mit fester Größe befolgt wird. Zu Beginn ist der Speicher leer und der Allokator hat den Speicher in Partitionen fester Größe unterteilt. Später wurden drei Programme mit den 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 in dieser Partition keine Verschwendung entsteht, Programm B und Programm C jedoch kleiner als die Partitionsgröße sind. In Teil 2 und Teil 3 verbleibt also freier Speicherplatz. Dieser freie Speicherplatz ist jedoch unbrauchbar, da der Speicherzuweiser Programmen nur vollständige Partitionen zuweist, jedoch keine Teile davon. Diese Verschwendung von freiem Speicherplatz wird als interne Fragmentierung bezeichnet.
Im obigen Beispiel handelt es sich um feste Partitionen gleicher Größe. Dies kann jedoch auch in Situationen auftreten, in denen Partitionen mit verschiedenen festen Größen verfügbar sind. Normalerweise ist der Speicher oder der härteste Speicherplatz in Blöcke unterteilt, die normalerweise die Größe von Potenzen von 2 haben, z. B. 2, 4, 8, 16 Bytes. Ein Programm oder eine Datei mit 3 Bytes wird also einem 4-Byte-Block zugewiesen, aber ein Byte dieses Blocks wird unbrauchbar und verursacht eine interne Fragmentierung.
Was ist externe Fragmentierung?
Betrachten Sie die obige Abbildung, in der die Speicherzuweisung dynamisch erfolgt. Bei der dynamischen Speicherzuweisung weist der Zuweiser nur die genau erforderliche Größe für dieses Programm zu. Der erste Speicher ist völlig frei. Dann werden die Programme A, B, C, D und E unterschiedlicher Größe nacheinander geladen und in dieser Reihenfolge zusammenhängend gespeichert. Später werden Programm A und Programm C geschlossen und aus dem Speicher entladen. Jetzt gibt es drei freie Speicherbereiche im Speicher, die jedoch nicht benachbart sind. Jetzt wird ein großes Programm namens Programm F geladen, aber keiner der freien Speicherplätze reicht für Programm F aus. Das Hinzufügen aller freien Speicherplätze reicht definitiv für Programm F aus, aber aufgrund der mangelnden Nachbarschaft ist dieser Speicherplatz ausreichend unbrauchbar für Programm F. Dies wird als externe Fragmentierung bezeichnet.
Was ist der Unterschied zwischen interner und externer Fragmentierung?
• Interne Fragmentierung tritt auf, wenn eine Speicherzuweisungstechnik mit fester Größe verwendet wird. Externe Fragmentierung tritt auf, wenn eine dynamische Speicherzuweisungstechnik verwendet wird.
• Interne Fragmentierung tritt auf, wenn einem Programm / einer Datei mit einer geringeren Größe als die Partition eine Partition fester Größe zugewiesen wird, wodurch der Rest des Speicherplatzes in dieser Partition unbrauchbar wird. Die externe Fragmentierung ist darauf zurückzuführen, dass nach dem Laden und Entladen von Programmen oder Dateien für einige Zeit nicht genügend benachbarter Speicherplatz vorhanden ist, da dann hier und da der gesamte freie Speicherplatz verteilt wird.
• Die externe Fragmentierung kann durch Komprimierung abgebaut werden, wobei die zugewiesenen Blöcke zur Seite verschoben werden, sodass zusammenhängender Platz gewonnen wird. Dieser Vorgang benötigt jedoch Zeit und auch bestimmte kritische zugewiesene Bereiche, z. B. Systemdienste, können nicht sicher verschoben werden. Wir können diesen Komprimierungsschritt auf Festplatten beobachten, wenn der Defragmentierer in Windows ausgeführt wird.
• Externe Fragmentierung kann durch Mechanismen wie Segmentierung und Paging verhindert werden. Hier wird ein logisch 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 unterschiedlicher Größe vorhanden sind und ein Programm zugewiesen wird, das auf der besten Anpassung basiert. Die interne Fragmentierung ist jedoch noch nicht vollständig beseitigt.
Zusammenfassung:
Interne und externe Fragmentierung
Sowohl die interne als auch die externe Fragmentierung sind Phänomene, bei denen Speicher verschwendet wird. Interne Fragmentierung tritt bei Speicherzuweisung mit fester Größe auf, während externe Fragmentierung bei dynamischer Speicherzuweisung auftritt. Wenn eine zugewiesene Partition von einem Programm belegt wird, das kleiner als die Partition ist, wird der verbleibende Speicherplatz verschwendet, was zu einer internen Fragmentierung führt. Wenn nach dem Laden und Entladen von Programmen nicht genügend benachbarter Speicherplatz gefunden werden kann, da hier und da freier Speicherplatz verteilt ist, führt dies zu einer externen Fragmentierung. Fragmentierung kann in jedem Speichergerät wie RAM, Festplatte und Flash-Laufwerken auftreten.