Festplatten-Scheduler
# Festplatten-Scheduler

Der Festplatten-Scheduler ist Bestandteil von Betriebssystemen und regelt die zeitliche Abfolge (Scheduling) von Lese- und Schreibaufträgen an Festplatten und andere Speichergeräte.

Folgende Techniken werden verwendet, um eine bestmögliche Ausnutzung der Festplatte zu gewährleisten:

## First come, first served (FCFS)

    Bei diesem Algorithmus werden die Lese- und Schreibaufträge in der Reihenfolge ihres Eingangs an das Speichergerät weitergegeben. Er kann bei Speichergeräten wie Flash-Speichern verwendet werden, bei denen auf beliebige Positionen zugegriffen werden kann, ohne dass ein größerer Zeitverlust (etwa durch das Neupositionieren eines Lese-/Schreibkopfs) entsteht.

## Shortest seek first

    Dieser Algorithmus ist eine direkte Verbesserung von FCFS. Von einer Menge von Lese-/Schreibaufträgen wird derjenige ausgewählt, der dem Schreib-/Lesekopf der Festplatte am nächsten ist. Ein Vorteil dieser Vorgehensweise ist ihre Einfachheit, ein gravierender Nachteil ist, dass Daten, die am Rand der Festplatte liegen, möglicherweise sehr lange warten müssen, bis sie gelesen bzw. geschrieben werden.

## Aufzug-Algorithmus

    Der Aufzug-Algorithmus heißt so, weil er sich ähnlich verhält wie ein Aufzug. Die momentane Position des Festplattenarms sowie seine Bewegungsrichtung sind bekannt. Nach jedem abgeschlossenen Lese-/Schreibauftrag fährt er zum nächsten in dieser Richtung liegenden Auftrag weiter, so lange, bis in dieser Richtung kein Auftrag mehr zu erledigen ist. Dann wird die Bewegungsrichtung umgekehrt.

## Sägezahn-Algorithmus

    Dieser Algorithmus ähnelt dem Aufzug-Algorithmus, allerdings werden die Daten nur in aufsteigender Reihenfolge sortiert aufgesucht. Danach fährt der Festplattenkopf in einer langen Bewegung wieder zum Anfang der Platte (bzw. zum niedrigsten gerade anstehenden Lese-/Schreibauftrag) zurück. Der Vorteil dieser Vorgehensweise liegt darin, dass der Cache-Speicher, der in jeder modernen Festplatte eingebaut ist, und das von vielen Platten hardwareseitig zur Verfügung gestellte Vorauslesen von Daten (read-ahead) besser ausgenutzt werden, als es bei der absteigenden Suchbewegung des Aufzug-Algorithmus der Fall ist.

Ein Festplatten-Scheduler kann außerdem Schreib- und Leseaufträge mit unterschiedlicher Priorität behandeln. Letztere sind zeitlich dringend, da meistens das Programm, das die Daten angefordert hat, auf diese wartet. Zu schreibende Daten dagegen können gegebenenfalls zwischengespeichert werden, bevor sie tatsächlich auf das Speichermedium geschrieben werden.

