Fragmentierung (Informationstechnik)
In der Informationstechnik wird mit Fragmentierung die Zerstückelung eines Speicherraums bezeichnet. In Abgrenzung zur internen Fragmentierung (dem Verschnitt) wird sie manchmal auch als Externe Fragmentierung bezeichnet.
Beschreibung
In vielen Softwaresystemen wird Speicher (RAM, Festplattenspeicher etc.) als Teil eines dynamischen Hardware-Ressourcen-Managements von Programmen bei Bedarf (z. B. um dort Daten zu speichern und bereitzuhalten) angefordert. Diese Anfragen werden bedient (z. B. vom Betriebssystem), indem ein ausreichend großer Speicherbereich aus dem verfügbaren Ressourcenpool ausgewählt und dem anfragenden Programm zur Verfügung gestellt wird. Später kann dieser Speicherbereich wieder zurückgegeben werden und steht dann neuen Anforderungen zur Verfügung.
Das heißt, insgesamt besteht ein Speicherraum aus Bereichen, die gerade in Verwendung sind und Bereichen, die unbenutzt sind. Liegen die verwendeten Bereiche nicht kontinuierlich hintereinander, sondern existieren dazwischen noch Stücke freien Speichers (Fragmente), spricht man von Fragmentierung oder von fragmentiertem Speicher.
Fragmentierung kann zum Fehlschlagen einer Speicheranforderung führen (und damit potentiell zu Fehlfunktionen oder gar Abbruch des Programms). Dies passiert dann, wenn ein neu zu allozierender Bereich größer ist als das größte freie Fragment. Obwohl in diesem Szenario die Summe der Größen aller ungenutzten Fragmente mindestens so groß ist wie der zu allozierende Bereich, also insgesamt genug Speicher zur Verfügung steht, kann die Anfrage gar nicht oder nicht performant bedient werden. Es gibt also Speicherfragmente, die nicht nutzbar sind, obwohl sie nicht in Verwendung sind.
Beispiele
Ein bekanntes Beispiel sind die Fragmentierungen von Dateisystemen, welche zusätzlich noch einen Leistungsnachteil haben, da bei Festplatten mehrere, verstreute Zugriffe mehr Zeit benötigen als ein sequentieller Zugriff.
Speicher in der Informationstechnik, die von Fragmentierung betroffen sein können, sind u. a.:
- logische Dateisysteme
- physische Festplatten
- physischer Arbeitsspeicher (RAM)
- virtueller Speicher (Virtuelle Speicherverwaltung)
Lösungsansätze
- Erweiterung des verfügbaren Speicherraums.
- Eine Speichervirtualisierung (Virtuelle Speicherverwaltung) kaschiert eine Fragmentierung des physischen RAM effektiv.
- Jede Allokation kann nur einen einzigen Block gleicher Größe betreffen, was dann aber zu interner Fragmentierung führt: Paging.
- Defragmentierung, verwendet vor allem bei Dateisystemen auf Festplatten.
- Die Anzahl der nicht genutzten Fragmente wird durch Verschiebung der genutzten Fragmente unter Anpassung der Verweise reduziert: Garbage Collection.