Im Laufe der Jahre wurden viele Richtlinien und Algorithmen für Festplattenplanung entwickelt, die jeweils eigene Stärken und Schwächen haben. Die beste Wahl hängt stark von den spezifischen Anforderungen an die Arbeitsbelastung und des Systems ab. Hier sind einige der häufigsten:
nicht preemptiv (Anfragen werden in Ordnung gebracht, damit sie ankommen):
* Erstes, First-Service (FCFS): Einfachster Ansatz; Anfragen werden in der Reihenfolge gestellt, die sie ankommen. Sehr einfach zu implementieren, kann aber zu erheblichen Suchzeit und Leistungsverschlechterung führen, insbesondere mit weit verstreuten Anfragen. Es ist anfällig, lange Anfragenkonvois zu schaffen.
* kürzeste Zeit zuerst suchen (SSTF): Wählt die Anfrage aus, die die Suchzeit aus der aktuellen Kopfposition minimiert. Verbessert im Allgemeinen die Leistung über FCFs, kann jedoch zu Hunger für Anfragen weit entfernt von der aktuellen Kopfposition (dem "Aufzugseffekt") führen.
Präventiv (Anfragen können unterbrochen und neu angeordnet werden):
* Scan (Aufzugsalgorithmus): Der Scheibenkopf bewegt sich in eine Richtung und bedient Anfragen auf dem Weg. Sobald es das Ende erreicht, kehrt es die Richtung um und setzt die Wartungsanforderungen in die entgegengesetzte Richtung fort. Fairer als SSTF, da es Hunger vermeidet.
* c-scan (kreisförmiger Scan): Ähnlich wie beim Scan, aber wenn der Kopf das Ende erreicht, springt er auf den Anfang zurück, ohne Anfragen auf der Rückreise zu gewährleisten. Dies bietet eine gleichmäßigere Verteilung des Dienstes und weniger Abweichungen in den Reaktionszeiten als bei Scan.
* Look und C-Look: Dies sind Variationen von Scan bzw. C-Scan. Der Unterschied besteht darin, dass sie anstatt sich bis zum Ende der Festplatte zu bewegen, nur bis zur am weitesten entfernten Anfrage in die aktuelle Richtung gehen. Dies reduziert unnötige Kopfbewegungen.
* fscan: Eine Variation, die FCFs und Scan kombiniert. IT -Diensteanfragen in der FCFS -Reihenfolge in jedem Scan -Zyklus.
* Multi-Level-Warteschlangenplanung: Priorisiert Anfragen basierend auf ihrem Typ (z. B. Systemanfragen im Vergleich zu Benutzeranfragen). Für jede Warteschlange können verschiedene Planungsalgorithmen verwendet werden.
* Gewichtungsalgorithmen: Weisen Sie Gewichten an Anforderungen zu, die auf Wichtigkeit oder Priorität basieren. Anfragen mit höher gewichteten Anfragen werden bevorzugt.
Andere Algorithmen und Überlegungen:
* Frist Planung: Priorisiert Anfragen anhand ihrer Fristen. Zuerst werden kritische Anfragen gestellt, um fehlende Fristen zu vermeiden.
* adaptive Algorithmen: Passen Sie ihre Planungsstrategie dynamisch anhand des beobachteten Systemverhaltens und der Arbeitsbelastungseigenschaften an.
* völlig faire Warteschlange (vgl.): Ein Linux -Kernel -Scheduler, der darauf abzielt, eine faire Bandbreitenzuweisung zwischen den Prozessen bereitzustellen. Es ist nicht ausschließlich ein Scheibenplanungsalgorithmus, sondern wirkt sich erheblich auf die Scheiben -E/A -Leistung aus.
* Vorfreude: Einige fortgeschrittene Algorithmen versuchen, zukünftige Anfragen auf der Grundlage früherer Muster vorherzusagen und die Kopfbewegung entsprechend zu optimieren.
In der Praxis verwenden moderne Betriebssysteme häufig eine Kombination dieser Algorithmen und anderen hoch entwickelten Techniken zur Optimierung der Scheiben -I/A -Leistung. Die spezifischen verwendeten Algorithmen sind möglicherweise nicht immer öffentlich dokumentiert oder leicht zu ermitteln. Der beste Algorithmus hängt von vielen Faktoren ab, einschließlich Festplattenmerkmalen, E/A -Muster und der Leistungsziele.