Kann eine herkömmliche Festplatte sowohl Direktzugriff als auch sequentiellen Zugriff ausführen?
Eine Festplatte wird als Gerät mit wahlfreiem Zugriff eingestuft. Die Sektoren der Festplatte sind adressierbar, und für einen Lese- oder Schreibvorgang muss eine Sektoradresse angegeben werden. Der AR / W-Betrieb hängt nicht vom Standort des vorherigen Betriebs ab.
Geräte mit sequenziellem Zugriff wie Magnetbänder (Rollen oder Kassetten) und Lochbänder (Papier oder Mylar) verfügen über keine adressierbaren Datensätze oder Blöcke. Die Datensätze / Blöcke sind positionsabhängig und der Lese- / Schreibzugriff muss am Anfang des Mediums beginnen. Es gibt einige Tricks (z. B. Dateimarkierungen auf Magnetbändern), um eine schnelle Suche zu ermöglichen, aber Geräte mit sequenziellem Zugriff existieren heutzutage hauptsächlich aufgrund der Vorratsdatenspeicherung und der Kosten-pro-Byte-Vorteile. Mit der modernen Verbreitung von Festplatten und SDDs können Geräte mit sequenziellem Zugriff keine Leistung als Allzweck-Speichergerät (z. B. für ein Dateisystem) erbringen.
Wenn ja, warum sollten Sie für beide Vorsorge treffen?
Sequentieller Zugriff ist eine natürliche Fähigkeit eines Geräts mit wahlfreiem Zugriff.
Während ein Gerät mit sequenziellem Zugriff Probleme hat (dh viele zusätzliche Operationen erfordert und Zeit verbraucht), um einen wahlfreien Zugriff durchzuführen.
Technisch gesehen führt eine Festplatte keinen sequentiellen Zugriff durch. Die Kommandoschnittstelle hat kein "read next" oder "write next". Es muss eine explizite Sektoradresse angegeben werden.
Nachdem ich diesen Beitrag gelesen habe, habe ich die Idee, dass sequentieller Zugriff besser ist als wahlfreier Zugriff. Wie ist das?
Besser auf welche Weise?
(Übrigens sind diese Antworten nicht 100% genau.)
Einige Anwendungen (z. B. ein Datenrekorder / -logger oder die Archivierung einer Festplatte) funktionieren mit sequenziellem Zugriff einwandfrei und würden mit wahlfreiem Zugriff überhaupt nicht profitieren.
Einige Anwendungen benötigen unbedingt einen wahlfreien Zugriff, um ihre Aufgabe rechtzeitig zu erledigen (z. B. Datenbankabfrage oder Dateisystem).
Beachten Sie, dass der typische PC kein Speichergerät mit sequenziellem Zugriff hat.
Im Allgemeinen ist ein Gerät mit wahlfreiem Zugriff nützlicher als ein Gerät mit sequenziellem Zugriff. Aus diesem Grund ist die Festplatte (oder SDD) (beides Direktzugriffsgeräte) ein wesentliches Peripheriegerät für die Massenspeicherung von Computern, während Geräte mit sequenziellem Zugriff wie z. B. Bänder als optional gelten und in erster Linie für Archivierungsfunktionen verwendet werden.
Der Direktzugriff bietet also alle Möglichkeiten des sequentiellen Zugriffs.
Richtig.
Auch unter welchen Umständen greift eine Festplatte auf zufälligen / sequentiellen Zugriff zu?
Die Festplatte führt aufgrund ihrer Befehlsschnittstelle immer einen wahlfreien Zugriff durch.
Um auf den Sektor "next sequential" zuzugreifen, muss der Host-Computer den Sektor "previous sector + 1" anfordern. Es gibt keinen Befehl zum "Lesen (oder Schreiben) als nächstes". Jeder R / W-Befehl muss eine Sektoradresse angeben.
Beachten Sie, dass die Betriebssystem-Dateisystemsoftware dieses Merkmal der Festplatte verdeckt. Auf die meisten Dateien wird sequenziell zugegriffen: Sie beginnen mit dem Schreiben oder Lesen einer Datei an ihrem Anfang und greifen nacheinander (dh nacheinander) jeweils auf einen Datensatz oder eine Zeile zu. Das Kopieren einer Datei erfolgt immer durch sequentielles Lesen der Quelldatei. Lesen Sie diese Antwort, um zu verstehen, wie das Dateisystem und die Festplatte zusätzliche Direktzugriffe ausführen müssen, um dieses sequentielle Kopieren von Dateiinhalten durchzuführen.
Wie beeinflusst die Art des E / A-Zugriffs die Zugriffszeit?
Zuerst müssen wir die "Zugriffszeit" der Festplatte richtig definieren (da die Antworten in dem von Ihnen erwähnten Beitrag ungenau sind). Es gibt verschiedene Komponenten für die Zugriffszeit, die einem Festplattenvorgang entsprechen:
- Der Lese- oder Schreibbefehl muss vom Host-Computer über die Schnittstelle zwischen Host und Laufwerk (z. B. SATA) an die Festplatte gesendet werden.
- Der HDD-Controller verarbeitet den Befehl. Wenn eine Leseanforderung aus dem Cache erfüllt werden kann, sind die Sektordaten bereits verfügbar. gehe zu Schritt 8. Für eine Schreibanforderung müssen auch die Sektordaten übertragen werden, und dann werden ECC-Bytes berechnet.
- Die eigentliche Plattenoperation würde mit einer optionalen Suchoperation beginnen.
Wenn die R / W-Kopfbaugruppe nicht bereits am angeforderten Zylinder positioniert ist, muss ein Suchvorgang ausgeführt werden. Das Zeitintervall zum Ausführen dieser R / W-Kopfbewegungsoperation wird als Suchzeit bezeichnet . Beachten Sie, dass die Suche (dh die Bewegung der R / W-Köpfe) eine Beschleunigung, eine optionale Phase mit maximaler Geschwindigkeit und eine anschließende Verzögerung erfordert. Die Geschwindigkeit ist nicht konstant und die Suchzeiten sind nicht linear proportional zur Anzahl der gefahrenen Zylinder. Diese Tatsachen machen die meisten Kurzhubberechnungen falsch.
Wenn die R / W-Kopfanordnung bereits am angeforderten Zylinder positioniert ist, ist keine Suche erforderlich und die Suchzeit ist effektiv Null.
- Sobald sich die R / W-Kopfanordnung am angeforderten Zylinder befindet, wird der R / W-Kopf ausgewählt, der der angeforderten Spur entspricht.
- Während sich die Platten "unter" den R / W-Köpfen drehen, muss der Controller warten, bis der angeforderte Sektor vorbeikommt. Diese Wartezeit wird als Rotationslatenz bezeichnet . Sofern Sie nicht vorhersagen können, wann der Controller das Warten in Bezug auf die Rotationsposition des angeforderten Sektors startet, beträgt die durchschnittliche Rotationslatenz die Hälfte der Rotationsperiode. (Die Periode ist die Umkehrung der Drehzahl.)
- Sobald der angeforderte Sektor lokalisiert ist, wird die tatsächliche Lese- oder Schreiboperation ausgeführt. Für eine Leseoperation werden die von der Plattentelleroberfläche gelesenen Bits als Bytes in einen Sektorpuffer geschrieben. Für eine Schreiboperation werden die Daten im Sektorpuffer serialisiert und auf die Plattentelleroberfläche geschrieben.
- Nachdem der gesamte Sektor in den Sektorpuffer (der Steuerung) eingelesen wurde, werden die Daten mit dem ECC validiert. Bei Bedarf wird eine Korrektur durchgeführt (ein weicher Fehler). Wenn die Fehler nicht behoben werden können, wird ein erneuter Leseversuch versucht.
- Die R / W-Anforderung wird abgeschlossen, indem auf den Host-Computer mit den Sektordaten geantwortet wird, die gelesen wurden, oder indem über die Schnittstelle zwischen Host und Laufwerk eine Bestätigung "Schreiben in Ordnung" gesendet wird.
Die Zugriffszeit ist die gesamte verstrichene Zeit, um alle diese Vorgänge auszuführen. Mit Ausnahme von # 3, Suchzeit und # 5, Rotationslatenz, neigen die anderen Operationen dazu, im Vergleich zu diesen beiden Operationen relativ kurze und vorhersagbare Dauern zu haben.
Ein wahlfreier Festplattenzugriff würde tendenziell eine lange Zugriffszeit haben, da eine Suche mit unbekannter Spanne und eine Rotationslatenz erforderlich wären.
Ein sequentieller Festplattenzugriff kann eine minimale Zugriffszeit haben, da keine Suche wahrscheinlich ist (es sei denn, der vorherige Zugriff war der letzte Sektor des Zylinders) und die Rotationslatenz Null sein kann, wenn die Anforderung bereits in der Warteschlange steht oder der vorherige Lesevorgang "read ahead" ausgeführt wurde. . Wenn das Timing für das Senden von sequentiellen Anforderungen an die Festplatte schlecht ist (dh, wenn zu spät der nächste Sektor fehlt), würden die Zugriffszeiten aufgrund der Rotationslatenzzeit, die einer nahezu vollständigen Rotationszeit entspricht, erhöht. Diese Latenz wäre ungefähr so groß wie eine Suche nach einem Zylinder.