Auf Thema antworten

Blenden wir mal alles aus, was das Problem beeinträchtigen könnte (Dateisysteme, Platten, Caches usw.) und nehmen den schlimmsten Fall an, nämlich dass es nur einen Lesekopf gibt, mit einer Anfrage genau ein Sektor von der Platte gelesen wird und die Daten über die Platte absolut ungünstig verteilt sind.


Würdest Du jetzt einen Daten-Sektor nach dem anderen lesen, würde genau das passieren, was Du geschrieben hast: der Lesekopf muss ständig die neue Position anfahren. Stellst Du dagegen mehrere Anfragen auf einmal, weiß der Controller, welche Sektoren gelesen werden müssen. Er kann die Anforderungen somit in eine bessere Reihenfolge bringen.


Konkret können wir mal Sektoren auf den Spuren 1, 40 und 20 annehmen. Nehmen wir außerdem an, der Kopf wäre gerade über Spur 50.


Liest du die Sektoren nacheinander, muss der Kopf erstmal von Spur 50 auf Spur 1 fahren (50 Sektoren), dann auf Spur 40 zurück (40 Sektoren) und dann auf Spur 20 (20 Sektoren), insgesamt überfährt der Kopf also 110 Sektoren.


Liest du die drei Sektoren dagegen parallel, kann der Controller rechnen und fährt erstmal zu Spur 40 (10 Sektoren), weiter zu Spur 20 (20 Sektoren) und am Ende zu Spur 1 (20 Sektoren), insgesamt überfährt der Kopf also nur 50 Sektoren.


Nachtrag: das Wichtigste hätte ich jetzt beinahe vergessen. Bei solchen Dingen spielen viele Faktoren eine Rolle, so dass diese Überlegungen für die Praxis eher uninteressant sind. In einem Fall kann es schneller werden, in einem anderen bringt es dagegen nichts oder hält nur auf. Das einzige Mittel: messen.



Oben