Sekundärspeicher


Festplatten, Einleitung

Bei Sekundärspeichermedien (auch Hintergrundspeicher genannt) handelt es sich meist um Festplattenspeicher; inzwischen kommen jedoch auch optische Medien wie CD-RAM, DVD oder auch Siliziumspeicher in Frage.   Ein großer Unterschied zum Primärspeicher (Hauptspeicher) besteht im Datendurchsatz, der meist sehr viel kleiner als die des Hauptspeichers ist (Hauptspeicher ca 30-60 MB/s, Plattenspeicher ca 2-15 MB/s). Wesentlich größer wird die Differenz bei Zugriffen auf kleinere Dateien. Hier spielt die Zugriffszeit eine wichtige Rolle. Sie liegt beim Hauptspeicher im Nanosekundenbereich (ca. 8-100ns), bei Magnetspeicherplatten zwischen 5 und 20ms).

Meist ist der Sekundärspeicher auch wesentlich größer, bei heutigen Workstations ist er oft 100 mal größer, als der Primärspeicher (vgl. 32-128 MB RAM, 3-4GB Festplatte, 1998).

Um Daten auf Disketten bzw. Festplatten zu speichern, unterteilt man den Raum auf den Oberflächen in Teilbereiche.Es handelt sich hierbei um Spuren (auch Zylinder,Tracks), die in Ringen um den Mittelpunkt angeordnet sind. Würde man die Daten jetzt nur in den einzelnen Spuren ablegen, so wäre dies ziemlich unpraktisch, man müßte zu große Datenmengen auf einmal lesen/speichern. Man unterteilt also die Platte zusätzlich in Sektoren, die Tortenstücken sehr ähnlich sind. Eine einzelne Dateneinheit, Block genannt, wird nun mittels einer Kombination aus Zylinder und Sektornummer adressiert. Diese typ. 512 Byte große Einheit stellt zugleich die kleinste adressierbare Einheit des Datenspeichers dar. Bei modernen Festplatten gibt es noch eine weitere Unterteilung, jene in Zonen.

Da Festplatten im allgemeinen mit einer konstanten Umdrehungsgeschwindigkeit betrieben werden, überstreicht der Schreib-/Lesekopf pro Zeiteinheit unterschiedlich große Strecken. Würde nun die Sektoranzahl auf dem Platteninneren genausogroß sein wie außen, so ginge ein großer Teil der Oberfläche verloren (dies wird heute mittels ZBR gelöst, wird später noch besprochen). Ein Datenblock, der z.B. auf der Innenspur 1mm lang wäre, würde im äußeren Sektor vielleicht 10mm zur Verfügung haben, es gingen 90% verloren, da die Länge eines Sektors von der auf der inneren Spur maximal lesbaren Informationsmenge abhängt (s. Grafik).

Wird ein Block adressiert, bewegt sich der Schreib-/Lesekopf zunächst von einem Schrittmotor angetrieben (oder Magnetfeld, voice-coil-actuator), zur gewünschten Spur. Ist der Kopf richtig positioniert, muß er nun warten, bis sich der geforderte Sektor unter ihm befindet. Nun wird der gesamte Block in den Speicher eingelesen. Da sich bei solch einem Zugriff verschiedene Verzögerungen addieren (Latenzzeit, bis sich der Kopf in Bewegung setzt; Positionierungszeit, bis der Kopf über der Spur steht; Rotationsverzögerung, bis der Sektor unter dem Kopf erscheint), ist es sinnvoll, abhängig von der Datenart verschiedene Strategien, nach denen der Schreib-/Lesekopf die Blöcke anfährt, zu implementieren.

Die Bearbeitung der Daten auf Sekundärspeichermedien erfolgt immer über den Primärspeicher, in den sie vor einem Prozessorzugriff geladen werden müssen. Obwohl Daten auf Sekundärspeichern in vielfältigen Organisationsformen vorkommen, werden sie durch entsprechende Anpassung für das jeweilige Betriebssystem vollkommen transparent dargestellt. Wo früher separate Programme für den Zugriff auf ein spezielles Speichermedium zuständig waren, geht man heute dazu über, den Zugriff durch eine Treiberschicht zu abstrahieren, und die Daten dem Benutzer einheitlich zu präsentieren. So ergeben sich mehrere Schnittstellen, die jeweils eine eigene Sicht auf das Datenmedium Festplatte erlauben.

Anwendersicht

Der Anwender sieht den Festplattenspeicher als homogenen Datenträger, auf dem er seine Informationen ablegen kann. Dabei muß er sich nicht um eine evtl. Fragmentierung der Daten oder ihre genaue Position kümmern. Die ihm vom Betriebssystem direkt zur Verfügung gestellten Zugriffsmethoden lassen nur wenige Parameter hinsichtlich der internen Datenstruktur der Festplatte zu (so läßt sich z.B. bei der Formatierung die Clustergröße (bei FAT, NTFS) in bestimmten Grenzen angeben). Der Zugriff auf einzelne Blöcke bleibt ihm verwehrt (ausgenommen Low-Level-Funktionen wie debug unter DOS).

Programmsicht

Ein Anwenderprogramm greift auf den Plattenspeicher über die ihm vom Betriebssystem zur Verfügung gestellten Schnittstellenfunktionen zu (z.B. fopen, fclose, fread, fwrite). Auch hier wird die Sicht des Programms auf die Daten weitestgehend abstrahiert. So hat ein normales Anwendungsprogramm im allgemeinen weder Einfluß auf eine evtl. Fragmentierung seiner Daten noch auf die Positionierung/Größe verschiedener Cluster oder Plattensektoren. Abhängig vom verwendeten Betriebssystem (z.B. DOS) steht einem Programm jedoch der Zugriff auf solche Einheiten frei.

Betriebssystemsicht

Das Betriebssystem abstrahiert den Zugriff auf den von der Platte zur Verfügung gestellten Speicherplatz. Das Niveau dieser Abstraktion kann unterschiedliche Ausprägungen annehmen. Während MSDOS dem Anwender bzw. den Anwendungsprogrammen den direkten Zugriff auf die zugrundeliegende Hardware noch erlaubt, sperrt z.B. Windows NT diesen Weg völlig. Hier erfolgt der Hardwarezugriff über eine sogenannte HAL (Hardware Abstraction Layer). Einen direkten Zugriff auf Hardware erhalten nur noch eigens dafür programmierte Treiber. Die Abstraktion des Speicherplatzes wird bei Sekundärspeichern über ein Dateisystem realisiert. Beispiele hierfür sind FAT, FAT32, NTFS, HPFS, CDFS etc.. Alle diese Systeme haben eine Gruppierung einer bestimmten Anzahl von Blöcken in sogenannte Cluster gemeinsam. Diese stellen dann die kleinste adressierbare Speichereinheit dar. Überdies implementiert jedes Dateisystem seine eigene(n) Allokationstabelle(n). Das Betriebssystem ist für die (De-)Fragmentierung der Daten, also für die Bereitstellung eines zusammenhängenden Speicherbereichs verantwortlich.

Kontrollersicht

Auch hier existieren verschiedene Abstraktionsebenen. Bei älteren AT-Bus´-Kontrollern beschränkte sich ihre Fähigkeit darauf, dem Betriebssystem über in den Speicherbereich eingeblendete Ein-/Ausgabebereiche und Interrupts die Zylinder/Spuren/Sektoren der Festplatten oder Diskettenlaufwerke zugänglich zu machen. Jeder Zugriff legte für die gesamte Dauer den Prozessor lahm. Um den Datentransfer unabhängig vom Prozessor zu machen, wurden DMA-Kontroller entwickelt, die nach Erteilung eines I/O-Auftrags ohne Mithilfe des Prozessors den Speicherbus kontrollieren konnten und es so dem Prozessor ermöglichen, mit Daten aus seinem Cache weiterzuarbeiten. Mit der schnellen Vergrößerung der Datenspeicher stieß man bald auf neue Grenzen. So begrenzt DOS z.B. die maximal adressierbare Zylinderzahl auf 1024. Hier wurde eine Translation erforderlich. Man verkleinert hierbei die Zylinderzahl, während man die Zahl der Sektoren erhöht. Wird diese Funktionalität nicht vom Kontrollerbios zur Verfügung gestellt, ist man gezwungen, spezielle Treiberprogramme vorzuschalten.

Eine intelligentere Kontrollerart sind die SCSI-(ESDI)-Kontroller. Hier handelt es sich zwischen Kontroller und Festplatte um einen eigenen Bus, an dem jedes einzelne Gerät ein gewisse Eigenintelligenz besitzt. So können z.B. Daten zwischen zwei Festplatten am Bus transferiert werden, während eine anderes Gerät, z. B. ein Scanner, Bilder in den Hauptspeicher transferiert. Hier stellt der Kontroller generell eine Translation der Plattenadressen zur Verfügung, so daß eigene Translationsprogramme überflüssig werden. Die meisten RAID-Kontroller basieren auf SCSI. Ein Raidkontroller stellt die höchste Abstraktionsform zur Verfügung, denn er ist in der Lage, mehrere Einzelplatten als einen großen Datenspeicher zur Verfügung zu stellen. Je nach Ausprägung des RAID-Systems bringt er auch Fehlertoleranz und Leistungssteigerung, oft gepaart mit Datencaching, durch einen separaten RAM-Speicher.

Festplattensicht

Wie schon oben beschrieben, liegen Daten auf einer Festplatte in einer minimal adressierbaren Größe von 512 Byte vor. Aufeinanderfolgende Blöcke füllen zuerst eine Spur, dann die andere Seite der Platte, dann die anderen Spuren gleicher Position auf evtl. vorhandenen anderen Platten. Erst dann wird der Schreib-/Lesekopf auf der nächsten Spur positioniert. Werkseitig sind die Platten mit einem bestimmten Zonenschema vorformatiert. Dadurch wird die Sektorzahl in bestimmten Bereichen einer Festplatte festgelegt.

Andere Technologien

Es ist mittlerweile möglich, ein CD-R Laufwerk mittels eines speziellen Dateisystems (UDF) so zu benutzen, als wäre es eine normale Festplatte. Man kann Daten löschen, verschieben, überschreiben (obwohl dies in Wirklichkeit nicht möglich ist, wird es durch das Ändern der Dateizuordnungstabelle simuliert). Normale Bandlaufwerke lassen sich wie Festplatten ansprechen und dank hoher Übertragungsgeschwindigkeiten (bei DLT-Laufwerken der 3. Generation sind es mittlerweile 5MB/s bei kontinuierlichen Datenströmen) auch sinnvoll nutzen. Eine echte Alternative zu heutigen Festplatten stellen diese Nischentechnologien jedoch nicht dar. Hier wird es vielleicht durch die Entwicklung der DVD (Digital Versatile Disk) bald eine Wende geben.


FH-Köln hoch zurück