2009-03-29 13 views
5

Ich habe ein paar Ideen, die ich in der Disk Defragmentierung Arena ausprobieren möchte. Ich kam zu dem Schluss, dass es als Vorläufer der Implementierung nützlich wäre, eine Platte in einen Zustand zu versetzen, in dem sie fragmentiert war. Dies scheint mir ein Zustand zu sein, der schwieriger zu erreichen ist als ein defragmentierter. Ich gehe davon aus, dass die kommerziellen Defragmentierer dieses Problem wahrscheinlich gelöst haben.Wie könnte man einen Disk-Fragmentierer implementieren?

Also meine Frage .....

Wie könnte man gehen über eine fragmenter implementieren? Was macht Sinn, wenn man einen Defragmentierer testet?

Antwort

2

Wie Sie am besten entscheiden können, hängt vom Dateisystem ab.

Im Allgemeinen gleichzeitig eine große Anzahl von Dateien öffnen. Beim Öffnen einer Datei wird ein neuer Verzeichniseintrag erstellt, es wird jedoch kein Block für diese Datei geschrieben. Aber jetzt gehen Sie jede Datei nacheinander durch und schreiben einen Block. Dies führt normalerweise dazu, dass der nächste freie Block verbraucht wird, was dazu führt, dass all Ihre Dateien in Bezug aufeinander fragmentiert werden.

Fragmentieren bestehenden Dateien ist eine andere Sache. Im Grunde tun Sie dasselbe, aber tun Sie es auf einer Dateikopie von vorhandenen Dateien, machen Sie ein Löschen des Originals und benennen Sie Kopie um.

7

Vielleicht sollten Sie den Defragmentierungsalgorithmus auf einer Simulations/Mock-Festplatte testen, anstatt die eigentliche Festplatte zu fragmentieren? Erst wenn Sie zufrieden sind, arbeitet der Algorithmus selbst wie angegeben. Sie können die tatsächlichen Datenträger mit der tatsächlichen Datenträger-API testen.

Sie können sogar Schnappschüsse von fragmentierten Datenträgern erstellen (von Ihnen oder von jemandem, den Sie kennen) und diese Daten als Testmodell verwenden.

+0

Man, schlagen Sie Ihre Antwort mich mit Sekunden! –

0

Fragmentierung ist ein mathematisches Problem, so dass Sie versuchen, die Entfernung zu maximieren, die der Kopf der Festplatte während einer bestimmten Operation zurücklegt. Also, um effektiv etwas zu fragmentieren, müssen Sie die spezifische Operation zuerst definieren

2

Ich mag hier zu stark vereinfachten, aber wenn Sie die Festplatte künstlich fragmentieren, werden keine Tests, die Sie ausführen, nur für die Fragmentierung, die von Ihrem Fragmentierer erstellt wird als irgendeine echte Weltfragmentierung. Es kann sein, dass Sie am Ende für die Annahmen im Fragmentierungswerkzeug optimieren, die keine realen Ereignisse darstellen.

Wäre es nicht einfacher und genauer, einige Disk Images von fragmentierten Festplatten zu nehmen? Haben Sie Freunde oder Kollegen, die Ihnen vertrauen, dass Sie mit Ihren Daten nichts Antisoziales machen?

Verwandte Themen