Festplatten

Wenn nicht anders angegebene, geht es hierbei um die klassischen Magnetfestplatten, nicht um Flash-HDDs (SSD).

by Takeshi
Für den Aufbau einer Festplatte können zwei verschiedene Modellvorstellungen herangezogen werden: Das Buch und die Schallplatte. Die Schallplatte ist besser für den physikalischen Aufbau geeignet, das Buch, wenn es um die Sicht des Comupters geht.

Kommen wir zum physikalischen Aufbau (vgl. Schallplatte). Im Gehäuse rotieren ein oder mehrere Magnetplatten. Die Daten sind in runden Bahnen angeordnet. Der Lesekopf steht an einem Punkt auf der Magnetplatte und die Daten rasen an ihm vorbei, während er diese ausliest oder schreibt. Im Gegensatz zu einem Schallplattenspieler kann der Lesekopf hierbei selbstständig hin und her fahren, wo er gerade hin will.
by Takeshi
Hier muss zwischen verschiedenen Geschwindigkeiten unterschieden werden, ersteinmal zwischen der internen und der externen.

Die Verbindung zwischen der Festplatte zum Computer ist bei einer über IDE oder SATA angeschlossenen Festplatte viel schneller als die Daten intern gelesen oder geschrieben werden können. Festplattenhersteller geben deshalb gern allein die externe Datenrate an. Über USB sieht es dann schon wieder ganz anders aus, hier ist USB der Flaschenhals.

Zum Vergleich:
IDE schafft maximal 133 MB/s,
SATA II macht bis zu 300 MB/s,
USB 2.0 erreicht in der Praxis selten über 20 MB/s (theoretisch max. 45M B/s),
während aktuelle Festplatten intern bei 100 bis 150 MB/s liegen.

Soviel zur den maximalen Datenrate. Die interne Datenrate ist abhängig von der Geschwindigkeit, mit der die Scheiben rotieren, der Datendichte und von wo gerade Daten gelesen werden.
Verdoppelt sich die Drehgeschwindigkeit, kann der Lesekopf statt einer ganze zei Spuren in der gleichen Zeit lesen (oder schreiben) und damit auch doppelt so viele Daten. Ümliche Geschwindigkeiten sind 7200 rpm (Umdrehungen pro Munite) und 5400 rpm.
So ist es auch mit der Datendichte. Um die Kapazität der Festplatte zu steigern, werden entweder mehr Platten eingebaut oder mehr Daten auf eine Scheibe gepackt (höhere Datendichte). Letzteres hat zur Folge, dass am Lesekopf pro Umdrehung mehr Daten vorbei kommen, er also pro Umdrehung auch mehr Daten lesen kann. Größere Festplatten sind, wenn die Scheibenanzahl gleich bleibt, also potentiell schneller.
Nicht ganz unerheblich ist, wo sich die Daten befinden. In der Mitte wird mit einer Umdrehung weniger Strecke abgefahren als am Rand, damit also auch weniger Daten. Am Rand ist die Datenrate also am höchsten. Die angegebene interne Datenrate bezieht sich deshalb in der Regel auf die am Rand.

Die Zugriffszeit wird beim Thema Gechwindigkeit oft vergessen, spielt aber auch eine ganz wichtige Rolle. Soll eine bestimmte Datei gelesen werden, muss der Lesekopf ersteinmal auf die Spur fahren, auf der sich die Datei befindet, und das dauert. Danach muss der Kopf außerdem abwarten, bis die gewünschten Daten auf dieser Spur an ihm vorbei fahren, mit etwas Pech dauert das eine ganze Umdrehung, bei einer 7200 rpm Festplatte entspricht das 8,3 ms.

Zuletzt wird noch zwischen sequentielle und zufälligen Lesezugriffen unterschieden. Befinden sind alle Daten an einem Stück, muss der Kopf nur einmal positionieren und liest dann an einem Stück durch. Sind die Daten aber wild verteilt, muss der Kopf ständig neu positionieren und warten. Je mehr die Daten verteilt sind, desto länger sind die Zugriffszeiten. Das wirkt sich auch negativ auf die Datenrate aus, da immer wenig gelesen und immer mehr gewartet wird.

Die Zugriffszeiten können durch intelligentes Management der Festplatte minimiert werden, indem Zugriffe umsortiert werden. Ein kleines Beispiel: Es sollen 3 Datenblöcke gelesen werden. Block 1 und 2 befinden sich auf einer Spur, Block 3 auf einer benachbarten Spur zwischen den anderen beiden. Bekommt die Festplatte den Befehl Block 1, 2 und 3 zu lesen, wird bei der ersten Umdrehung Block 1 und 2 gelesen, bei der nächsten Block 3. Der Kopf kann aber auch Block 1 lesen, kurz zur Seite auf die andere Spur schwenken (wenn diese nicht weit weg ist), Block 3 lesen und dann wieder zurück auf die vorherige Spur und Block 2 lesen. Dabei wird nur eine einzige Umdrehung benötigt statt zwei.
by Takeshi
Um oben genannte Probleme zu minimieren, ist in Festplatten ein vergleichsweise kleiner Cache eingebaut. Bei 2 TB Festplatten ist der Cache meistens auf 64 MB dimensioniert. Nützlich ist der vorallem beim Schreiben. Die Daten werden sofort von der Festplatte entgegen genommen und können auf die Scheibe geschrieben werden, wenn der Kopf gerade daran vorbei kommt. Die Datenübertragung kann in der Zeit schon weiter gehen. Leseuzugriffe werden dadurch kaum bescheunigt, da die Festplatte natürlich nicht wissen kann, welche Daten als nächstes gelesen werden sollen.
by Takeshi
Zu Beginn werden alle Dateien hintereinander geschrieben. Mit der Zeit werden aber geschriebene Daten auch wieder gelöscht, um Platz für neue zu schaffen. Da die Dateien nicht immer gleich groß sind, wird eine geschaffene Lücke nicht immer komplett gefüllt, dadurch entstehen viele sehr kleine Lücken. Irgendwann ist kein Platz mehr, um die Datei an einem Stück zu schreiben und die Datei muss (in kleine "Fragmente") aufgeteilt werden, was die Zugriffszeiten erhöht, da der Lesekopf für eine Datei an verschiedenen Stellen lesen muss. Dieser Prozess wird Fragmentierung genannt.

Damit das möglichst selten passiert, werden Daten wieder umsortiert. Kleine Daten werden in andere kleine Lücken geschrieben, in denen sie auch Platz haben, dadurch wird ein größerer zusammenhängender Platz frei, an den wieder andere, größere Daten verschoben werden können usw., Am Ende ist, im optimalen Fall, keine Datei mehr aufgeteilt und Daten, die häufig zusammen gelesen werden, nah beieinander. Dies wird Defragmentierung genannt.
by Takeshi
Hiermit kommen wir zum Buch als Modellvorstellung.

Die Daten können nicht einfach irgendwo auf die Festplatte geschrieben werden, denn diese wären danach kaum wiederzufinden.
Die einzelnen Speicherblöcke können den Zustand 0 oder 1 einnehmen. Wirklich leer ist Datenträger damit nie, denn eine Aneinanderreihung von Nullen oder Einsen kann auch eine gespeicherte Information sein. Dementsprechend weiß man nie, wo denn nun echte Daten stehen oder nur Zufallswerte. Es wird also eine Organisation der Daten nötig.

Im ersten Schritt wird ein Bereich auf der Festplatte zur Datenspeicherung reserviert. Du kannst dir vorstellen, du hast eine bestimmte Anzahl einzelner Blätter in einem Buch, auf die du Daten schreiben kannst. Du musst nun festlegen, auf welchen Seiten du in Zukunft Daten hinterlegen möchtest. Dabei kannst du dir einfach alles nehmen, es macht aber manchmal auch Sinn nur einen Teil zu verwenden (dazu später mehr). Dieser Vorgang nennt sich partitionieren, der reservierte Bereich Partition.

Auf dieser Partition lassen sich aber nach wie vor Daten nicht sinnvoll speichern, denn das System weiß immernoch nicht, wo eine einzelne Datei anfängt und wo sie aufhört. Hier kommt das Dateisystem ins Spiel. Ein Dateisystem ist vergleichbar mit einem Inhaltsverzeichnis im Buch. In diesem Steht, auf welcher Seite eine Datei anfängt und wo sie endet, wie sie heißt und so weiter. Jedes Dateisystem ist anders aufgebaut und speichert andere Informationen, wie Schreibschutz (an/aus), wann die Datei zuletzt bearbeitet wurde oder Zugriffsrechte. Auch wie die Position der Daten gespeichert wird, ist unterschiedlich. Einige Dateisysteme haben zum Beispiel die Möglichkeit auf einen anderen Eintrag im Inhaltsverzeichnis zu verweisen, wenn einer voll ist, wodurch größere Dateien gespeichert werden können.

Für die verschiedensten Einsatzzwecke gibt es speziell optimierte Dateisysteme, das universelle Dateisstem gibt es nicht. Weit verbreitete Dateissteme sind FAT32, NTFS (Windows), ext2 oder ext3 (Linux).

Beim Formatieren wird ein leeres Inhaltsverzeichnis erstellt, der Bereich für die eigentlichen Daten bleibt in der Regel unberührt.

Jedes Betriebssystem hat sein eigenes Lieblingsdateisystem. Um nicht für jedes System eine extra Festplatte einbauen zu müssen, ist es von Vorteil die Festplatte in Partitionen unterteilen zu können. Außerdem werden durch die Partitionierung die Daten auch räumlich getrennt. Zusammenhängende Daten landen nur auf einem begrenzten Bereich auf der Magnetscheibe, was die Fragmentierung verringert.
by Takeshi
Wie schon erwähnt kann ein Datenträger genau genommen nie leer sein. Aufgrund dessen ändert ein Löschvorgang in der Regel auch nichts an den Daten selbst, sondern entfernt nur den Eintrag im Inhaltsverzeichnis. Der Speicherbereich wird lediglich freigegeben. Das reicht normalerweise aus und geht viel schneller, als würde die komplette Datei mit anderen Daten überschrieben werden.
by Takeshi
Auf einer Festplatte werden üblicherweise größere Dateien gespeichert, statt einzelner Bytes. Deshalb werden einzelne Bytes zu Sektoren zusammengefasst.
Der Vorteil liegt auf der Hand. Ohne Zusammenfassung bräuchte man für eine 4 GB Festplatte 4.294.967.296 Adressen, denn genau so viele Bytes ergeben 4 GB (2^32 Byte). Die Adresse wäre somit 32 Bit lang. Werden jedoch 512 Byte (2^9) zu einem Sektor zusammengefasst, reduziert sich die Anzahl der Adressen auf 8.388.608, die Adressen sind also nur noch 23 Bit lang, was den Rechen- und Verwaltungsaufwand in Hard- und Software erheblich vereinfacht.
Das bringt natürlich auch Nachteile mit sich. Wird nur ein Byte geschrieben, gehen dennoch 512 Byte verloren, bei 513 Byte ist es 1 kB usw. Das fällt bei Dateien mit mehreren MB aber kaum ins Gewicht, bei GB noch weniger. Außerdem ist es immer nur möglich einen ganzen Sektor zu lesen oder zu schreiben, auch wenn nur ein kleiner Teil gelesen oder geschrieben werden soll.

Von dieser Gruppierung rührt auch die 2 TB-Grenze bei Festplatten. Mit 512 Byte pro Sektor und 32 Bit (4 Byte) Adresslänge ergibt sich eine maximale Größe von 2^9 x 2^32 = 2^41 Byte = 2 TB.
Kleiner Tipp zum Rechnen: Pro 2^10 gehts um eine Einheit nach oben, also kB (2^1x) -> MB (2^2x) -> GB (2^3x) -> TB (2^4x). Bei 2^41 geht es 4 Einheiten hoch (TB) und es bleibt 2^1 =2 übrig. 2^32 heißt "GB", es bleibt 2^2 = 4 übrig, also 4 GB. Hierher kommt auch die Grenze von 4 GB beim RAM, denn der wird nicht in Sektoren unterteilt und in einem 32 Bit-System mit 32 Bit adressiert.

Neue Festplatte gruppieren jedoch 4kB zu einem Sektor. Damit erhöht sich bei 32 Bit die maximale Größe um den Faktor 8 auf 16 TB. Kann das Betriebssystem (oder das BIOS) aber nicht mit 4k-Sektoren umgehen, ist das ein Problem. Deshalb emulieren viele Festplatten die 512 Byte pro Sektor, womit aber nicht gleich alles in Butter ist. Beim Lesen fällt das wieder kaum ins Gewicht, denn wird ein 512 Byte Sektor angefordert, werden 4 kB gelesen. Da die Daten aber sowieso hintereinander stehen, macht das für die Dauer keinen Unterschied. Nach außen werden dann nur die 512 Byte gesendet, das Betriebssystem ist zufrieden. Schlecht wird es erst beim Schreiben. Wie schon erwähnt kann nur der ganze Sektor geschrieben werden. Da das Betriebssystem von den 4 kB Sektoren nichts weiß, legt es unter Umständen auch in den anderen 3557 Byte des Sektors Daten ab, die natürlich nicht überschrieben werden dürfen. Aus diesem grund muss die Festplatte erst den ganzen Sektor lesen, die 512 Byte verändern und dann die veränderten 4 kB schreiben. Das dauert länger als nur die 512 Byte zu schreiben. Es ist also von Vorteil, wenn das Betriebssystem gleich von den großen Sektoren weiß oder diese am besten auch gleich so verwaltet.
by Takeshi
Auch heute wundern sich noch viele, wieso im System nicht so viel Speicher angezeigt wird. Der grund ist simpel. Normalerweise geben präfixe wie kilo, Mega und Giga Faktoren wie 1.000, 1.000.000 und 1.000.000.000 an. Da Computer aber nicht mit dem Dezimalsystem, sondern mit dem Dualsystem arbeiten und 2^10 = 1024 ergibt und das grob 1000 ist, versteht Software unter kilo den Faktor 1024 statt 1000. Festplattenhersteller verwenden für die Bezeichnung aber lieber die üblichen Bedeutungen mit dem Faktor 1000.

Steht auf einer Festplatte also 1 TB, ist damit 1.000.000.000.000 Byte gemeint. In einen 1024-Faktor umgerechnet ergibt das 913 GB.

Um der Verwirrung entgegen zu wirken, wurden Bezeichnungen wie kiB, MiB, GiB und TiB eingeführt. Diese stehen für den faktor 1024, währen die normalen Einheiten für den Faktor 1000 stehen. Die "binären" Einheiten sind aber so kaum vertreten.
by Takeshi

Impressum

Powered by FrogBoard Basic v0.4.0 alpha
and FrogBoard Page v0.2.0 alpha
trisaster Dev © 2009-2020