Wie funktioniert ein Defragmentierungsprogramm?

Ich frage mich schon seit einiger Zeit wie ein solchen Programm überhaupt funktioniert.

Das Fragmentiert bedeutet, dass zusammenhängende Dateiteile über "große" Entfernungen verteilt sind ist mir klar.

Aber woher weiß das Programm, welche Dateiteile denn zusammengehören? Würde es durchgehend überwachen, welche Fragmente, bei welcher Anwendung, zu welcher Zeit und mit welchen anderen Fragmenten zugegriffen wird, würde das ja einen unglaublich großen Performanceeinbruch und zig Gigabyte an Speicherplatz verbrauchen.

2010-05-31T04:37:51Z

@Mann vom Mond
Das Inhaltsverzeichnis? Von diesem Begriff hab ich im Zusammenhang mit Festplatten noch nichts gehört. Ist damit die Ordnerstruktur gemeint, wie sie vom Windows Explorer verwendet wird?

Das würde dann ja aber bedeutet, das ein Defragmentierungsprogramm nur die Teile nah beieinander hinsortiert, die im Explorer auch im Selben Ordner sind.

Das würde dann aber nicht wesentlich helfen, da ja viele Datein (Registery, Datein bei "Eigene Datei", die Ausführbaren Dateien aus dem Programmodner, etc.) ja häufig weit auseinander liegen.

2010-05-31T04:41:32Z

@Knut G
Ja, genau wie schon geschrieben ist mir das klar. Deine Antwort hat leider überhaupt nichts mit meiner Frage zu tun gehabt. ;)

Web-Man2010-05-31T04:55:26Z

Beste Antwort

"@Mann vom Mond
Das Inhaltsverzeichnis? Von diesem Begriff hab ich im Zusammenhang mit Festplatten noch nichts gehört.":


► Ich melde mich auch mal zu Wort.
Hier einige Informationen zum Inhaltsverzeichnis der Festplatte, was es wirklich gibt...


► Zu jeder Datei legt Windows einen Pfad an, der vom jeweiligen Laufwerk über Ordner und Unter-Ordner bis zu jeder Datei führt.
Der Pfad entspricht also der Adresse, unter der ein Programm eine Datei findet.
Soll ein Programm eine bestimmte Datei öffnen, dann schickt es eine Anfrage an Windows, die das Betriebs-System an das Datei-System (bei modernen Windows-Versionen immer NTFS) weiterleitet.
Anhand des Pfades findet das Datei-System die Speicher-Adresse der Datei auf der Festplatte und übermittelt die Datei an Windows.

► Damit das Datei-System die Pfad-Angaben von Windows den entsprechenden Dateien zuordnen kann, legt es ein Inhaltsverzeichnis an.
Es verküpft die verschiedenen Speicher-Adressen einer Datei auf der Festplatte mit den entsprechenden Pfaden.
Bei NTFS (New Technology File System) trägt dieses Inhaltsverzeichnis den Namen MFT (Master File Table).

Tipsi2082010-05-31T05:17:25Z

Ich versuchs mal einfach zu erklären.

Wenn eine Datei gespeichert wird, macht Windows das willkürlich.

Im Inhaltsverzeichnis wird mitgeteilt wo der Erste Teil der Datei gespeichert wird.

Passt dieser nicht in den zur Verfügung stehenden Festplattenplatz, wird am Ende dieses Dateiteiles ein Eintrag erzeugt der mitteilt, hier Ende des Ersten Teiles, nächstes Dateiteil liegt woanders.

Am Beginn des nächsten Dateiteiles ist dann ein Eintrag zu finden der sagt; hier bin ich. Der Zweite Teil der Datei.

Und so weiter und so weiter mit allen Dateiteilen.

Am Ende der Datei wird dann noch mitgeteilt, dass hier die Datei zu Ende ist und das Programm nicht weiter suchen muß.

Zusätzlich wird auch noch das Datum und wie oft auf die Datei zugegriffen wurde mitgespeichert.

Ein Defragmentierprogramm liest diese Daten aus, sucht sich die einzelnen Dateiteile zusammen, speichert das Ganze auf der Festplatte in einem freien Bereich zwischen, räumt eine Stelle die groß genug ist auf der Festplatte frei und speichert dann die Datei in einem Stück neu auf der Platte.

Ein gutes Programm achtet dabei auch noch darauf, daß oft benutzte Dateien in einem Bereich gespeichert werden, auf die schnell zugegriffen wird.

Das macht ein Defragmentierprogramm mit allen Dateien auf der Festplatte.

Deshalb sollte auf der Platte immer noch einiges an freiem Platz vorhanden sein, da sonst das ganze hin und hergeschiebe der Daten sehr lange dauert.

Das ist jetzt nur ein grober Ausriss. Ich denke aber um zu Verstehen wie so ein Programm prinzipiell arbeitet sollte es reichen.

Anonym2010-05-31T04:35:44Z

Beim Schließen eines Programms legt der Computer die vielen einzelnen Dateien willkürlich auf
freie Speicherplätze ab. Beim nächsten Mal muß er sie also etwas länger suchen, um das Programm
wieder zu öffnen. Wenn er das eine Zeit lang mit vielen Programmen gemacht hat, ist so ein
Durcheinander auf der Festplatte, daß er immer länger braucht. Beim Defragmentieren werden also
zusammengehörende Dateien wieder zu einem Paket zusammengepackt, er findet sie wieder schneller. Ansonsten wird nichts verändert.

Mann vom Mond2010-05-31T04:33:00Z

Im Inhaltsverzeichnis der Festplatten steht wo sich die einzelnen Teile einer Datei befinden, die Festplatte muss ja zu jeder Zeit wissen wo sie die einzelnen Teile zum Lesen finden kann. Diese Information können die Defragmentierungsprogramme auswerten.

@ Web Man
du benutzt den Begiff "Inhaltsverzeichniss" im letzten Teil deiner Antwort obwohl du am Anfang sagst das du im Zusammenhang mit Festpaltten davon noch nichts gehört hast.


Inhaltsverzeichniss hätte ich genauer erklären sollen und darauf hinweisen sollen, dass das Dateisystem jedes Datenträgers ein solches anlegt.
Siehe auch hier:
http://de.wikipedia.org/wiki/Dateisystem