Bei mechanischer Speicherung werden die Festplattenköpfe durch seek()
den Festplattenbetrieb auf niedriger Ebene an eine Position verschoben, sodass sie für das Lesen aus einem bestimmten Bereich der Festplatte bereit sind.
Bei Festkörperspeichern wie SD-Karten, Flash-Laufwerken und SSDs gibt es keine beweglichen Teile der Hardware, sondern nur elektrische Signale.
Unter der Annahme, dass eine nichtflüchtige NAND-RAM-Technologie die Grundlage der Hardware ist, welche Funktion erfüllt ein seek()
solches Gerät tatsächlich auf Hardwareebene?
Um es klar zu machen, ich weiß bereits, dass Folgendes passiert:
Das Userspace-Programm ruft den
seek()
Systemaufruf oder das betriebssystemspezifische Äquivalent aufDer Kernel interpretiert den Systemaufruf und sendet eine Nachricht zur Suche an den SATA-Controller
Der SATA-Controller interpretiert den Befehl und weist das angeschlossene Festplattengerät (Solid State) an zu suchen (oder ist es intelligent genug, um zu erkennen, dass es sich um einen Solid State handelt, und sagt es nicht einmal?).
Was ich nicht weiß ist, macht Solid State Device ??? mit dem Befehl "suchen".
Wenn es Details gibt, die vom Betriebssystem abhängen, nehmen Sie eine relativ standardmäßige Desktop-Version von GNU / Linux mit Kernel-Version 3.2 an.
Antworten:
Wenn Sie sich auf Linux beziehen, wird bei der Suche immer noch die erforderliche Anzahl von Bytes nach vorne verschoben. Zum Beispiel:
Startet Nullen 1024 Bytes in den Beginn einer Festplatte kopiert werden , ist es egal, ob sdb eine SD - Karte oder SSD - Laufwerk ist, wegen einer Kleinigkeit genannt Abstraktion dieser die eigentliche Mechanik auf einem niedrigeren Niveau Pflege genommen wird.
Aktualisieren
Ich verstehe, was du jetzt sagst. Nach meinem Beispiel für eine SD-Karte verwendet der Flash-Speicher so genannte Seiten , und die Seiten haben eine bestimmte Größe. Bei einer Suche sendet das Betriebssystem den Befehl an die SD-Karte / den Karten-Controller, auf eine bestimmte Seite zum Lesen und Schreiben zu wechseln .
quelle
lseek()
Systemaufruf als spezifisches Beispiel ansehen . Ich weiß, dass dieser Systemaufruf nicht nur das logische Suchen bewirkt, sondern auch, dass sich die Festplattenköpfe bewegen, wenn es sich um eine mechanische Festplatte handelt. Was macht die SSD?