C-Programmierung

Dateien

Zeitmessung | | Dateizugriffe

Algorithmen arbeiten mit darauf abgestimmten Datenstrukturen. Grundvoraussetzung ist der wahlfreie Zugriff auf den linearen Hauptspeicher. Dies ermöglicht eine hohe Verarbeitungsgeschwindigkeit.

Die Transferraten des Hauptspeichers erreichen bis zu 4–16GB/s bei Latenzzeiten von wenigen $\mu$s.

Um die Ergebnisse der Berechnungen dauerhaft zu speichern, bedarf es permanenter Speichersysteme, wie z.B. Festplatten. Diese haben in der Regel keinen wahlfreien Zugriff und deutlich langsamerere Datenraten.

Auf Festplatten sind die Daten in Dateien gespeichert. Die Dateien können als linearer Datenstrom angesehen werden, der vom Lesekopf der Platte mit konstanter Geschwindigkeit angeliefert wird. Ein Abweichen vom linearen Lesescheme bedingt eine hohe Wartezeit (Latenz) für die Neupositionierung des Lesekopfes.

Die Datenraten einer Festplatte erreichen 20–100MB/s. Die Latenz liegt bei 5–10 ms.

Wegen der hohen Latenz ist ein wahlfreier Zugriff auf Festplatten sehr ineffizient.

Das bedeutet, dass Daten in den meisten Fällen linear aus einer Datei in den Hauptspeicher eingelesen werden, dort in einer effizienzen Datenstruktur verarbeitet werden und danach wieder linear in einer Datei abgespeichert werden.

Im folgenden werden I/O Funktionen der C Standard Bibliothek beschrieben, mit denen man linear auf Dateien zugreifen kann.

Zeitmessung | | Dateizugriffe

Options: