Ist das Schreiben auf eine Festplatte teurer als das Lesen von einer Festplatte? Beispiel: Schreiben einer 1 GB großen Datei mit Datensätzen im Vergleich zum Lesen der gesamten Datei.
Antwort1
Auf Laufwerksebene würde ein Sektorlesevorgang etwa genauso lange dauern (oder etwas länger) wie ein Sektorschreibvorgang. Für einen Sektorlesevorgang muss der Befehl über die Laufwerksschnittstelle (z. B. SATA) eintreffen, der Befehl dekodiert, der Suchvorgang ausgeführt, Adressmarkierungen und Datensatz-IDs gescannt werden, bis der Sektor gefunden ist, die Sektordaten in einen Puffer gelesen, der Sektor mit ECC (Fehlerkorrekturcode) validiert und dann schließlich die Sektordaten gesendet werden. (Beachten Sie, dass es ein weit verbreitetes Missverständnis ist, dass Sektordaten direkt vom Lesekopf an die Schnittstelle übertragen werden können. Absolut falsch: Die Sektordaten werden immer vollständig gepuffert und immer erst mit voller Schnittstellengeschwindigkeit übertragen, nachdem der gesamte Sektor gelesen und validiert wurde.) Wenn ein vorausschauendes Lesen durchgeführt und zwischengespeichert wird, treten bei einem nachfolgenden sequentiellen Lesen keine Such- und Rotationsverzögerungen auf. Für einen Schreibsektor müssen der Befehl und die Sektordaten über die Laufwerksschnittstelle eintreffen, der Befehl dekodiert, der Suchvorgang ausgeführt, Adressmarkierungen und Datensatz-IDs gescannt werden, bis der Sektor gefunden ist, der Sektor mit ECC ausgeschrieben und der Host über die Fertigstellung benachrichtigt werden.
Auf Betriebssystem- oder Dateisystemebene sind Schreibvorgänge komplexer, wenn eine neue Datei erstellt wird. Zum Lesen oder Neuschreiben einer vorhandenen Datenträgerdatei muss nur nachgeschlagen werden, wo sich die Datensektoren (oder -cluster) befinden. Zum Schreiben einer neuen Datei oder zum Anhängen an eine Datei müssen zuerst Sektoren/Cluster aus der freien Liste zugewiesen, diese Sektoren/Cluster der Datei zugewiesen (Aktualisierung des Verzeichniseintrags?) und dann die Daten geschrieben werden. Beachten Sie, dass die Datenträgerzuordnungstabelle(n) normalerweise so schnell wie möglich aktualisiert (d. h. auf den Datenträger geschrieben) werden, möglicherweise sogar vor den Dateidaten, um die Integrität des Dateisystems aufrechtzuerhalten. Wenn Sie beim Erstellen einer Datei schon einmal viele Suchvorgänge auf dem Datenträger bemerkt/gehört haben, können Sie davon ausgehen, dass die Köpfe zwischen der Zuordnungstabelle und der neuen Datei hin- und hergeschoben wurden.