μη προληπτικά (τα αιτήματα εξυπηρετούνται για να φτάσουν):
* Πρώτος-Πρωταθοποιημένος (FCFS): Απλούστερη προσέγγιση. Τα αιτήματα εξυπηρετούνται με τη σειρά που φθάνουν. Πολύ απλό στην εφαρμογή, αλλά μπορεί να οδηγήσει σε σημαντική αναζήτηση χρόνου και υποβάθμισης της απόδοσης, ειδικά με ευρέως διάσπαρτα αιτήματα. Είναι επιρρεπές στη δημιουργία μεγάλων συνοδείων αιτήσεων.
* Ο συντομότερος χρόνος αναζήτησης πρώτα (SSTF): Επιλέγει το αίτημα που ελαχιστοποιεί τον χρόνο αναζήτησης από την τρέχουσα θέση της κεφαλής. Γενικά βελτιώνει την απόδοση των FCFs, αλλά μπορεί να οδηγήσει σε λιμοκτονία για αιτήματα μακριά από την τρέχουσα θέση κεφαλής (το "Effect του ανελκυστήρα").
προληπτική (αιτήματα μπορούν να διακόπτονται και να αναδιαταχθούν):
* Σάρωση (αλγόριθμος ανελκυστήρα): Το κεφάλι του δίσκου κινείται προς μία κατεύθυνση, εξυπηρετώντας αιτήματα στην πορεία. Μόλις φτάσει στο τέλος, αντιστρέφει την κατεύθυνση και συνεχίζει να εξυπηρετεί αιτήματα προς την αντίθετη κατεύθυνση. Δικαιότερο από το SSTF καθώς αποφεύγει την λιμοκτονία.
* c-scan (κυκλική σάρωση): Παρόμοια με τη σάρωση, αλλά όταν το κεφάλι φτάσει στο τέλος, πηδάει πίσω στην αρχή χωρίς να εξυπηρετεί αιτήματα για το ταξίδι επιστροφής. Αυτό παρέχει πιο ομοιόμορφη κατανομή της υπηρεσίας και λιγότερη διακύμανση των χρόνων απόκρισης από τη σάρωση.
* Κοιτάξτε και C-look: Αυτές είναι παραλλαγές της σάρωσης και της σάρωσης C, αντίστοιχα. Η διαφορά είναι ότι αντί να μετακινούνται μέχρι το τέλος του δίσκου, φτάνουν μόνο μέχρι το πιο απομακρυσμένο αίτημα προς την τρέχουσα κατεύθυνση. Αυτό μειώνει την περιττή κίνηση του κεφαλιού.
* fscan: Μια παραλλαγή που συνδυάζει FCFS και σάρωση. Οι υπηρεσίες υπηρεσιών πληροφορικής σε σειρά FCFS σε κάθε κύκλο σάρωσης.
* Προγραμματισμός ουράς πολλαπλών επιπέδων: Δίνει προτεραιότητα στα αιτήματα που βασίζονται στον τύπο τους (π.χ. αιτήματα συστήματος έναντι αιτήσεων χρήστη). Διαφορετικοί αλγόριθμοι προγραμματισμού μπορούν να χρησιμοποιηθούν για κάθε ουρά.
* Αλγόριθμοι στάθμισης: Αντιστοιχίστε βάρη σε αιτήματα βάσει της σημασίας ή της προτεραιότητας. Οι υψηλότεροι σταθμισμένοι αιτήσεις δίδονται προτιμήσεις.
Άλλοι αλγόριθμοι και σκέψεις:
* Προγραμματισμός προθεσμίας: Δίνει προτεραιότητα στα αιτήματα βάσει των προθεσμιών τους. Τα κρίσιμα αιτήματα εξυπηρετούνται πρώτα για να αποφευχθούν οι προθεσμίες που λείπουν.
* Προσαρμοστικοί αλγόριθμοι: Προσαρμόστε δυναμικά τη στρατηγική προγραμματισμού τους με βάση τα παρατηρούμενα χαρακτηριστικά συμπεριφοράς του συστήματος και τα χαρακτηριστικά φόρτου εργασίας.
* Πλήρως δίκαιη ουρά (CFQ): Ένας προγραμματιστής πυρήνα του Linux που στοχεύει στην παροχή δίκαιης κατανομής εύρους ζώνης μεταξύ των διαδικασιών. Δεν είναι αυστηρά ένας αλγόριθμος προγραμματισμού δίσκου, αλλά επηρεάζει σημαντικά την απόδοση του δίσκου I/O.
* Πρόβλεψη: Μερικοί προηγμένοι αλγόριθμοι προσπαθούν να προβλέψουν μελλοντικά αιτήματα που βασίζονται σε προηγούμενα πρότυπα και να βελτιστοποιήσουν ανάλογα την κίνηση της κεφαλής.
Στην πράξη, τα σύγχρονα λειτουργικά συστήματα χρησιμοποιούν συχνά ένα συνδυασμό αυτών των αλγορίθμων και άλλων εξελιγμένων τεχνικών για τη βελτιστοποίηση της απόδοσης I/O δίσκου. Οι ειδικοί αλγόριθμοι που χρησιμοποιούνται μπορεί να μην είναι πάντοτε τεκμηριωμένοι ή εύκολα καθορισμένοι. Ο καλύτερος αλγόριθμος εξαρτάται από πολλούς παράγοντες, όπως τα χαρακτηριστικά του δίσκου, το πρότυπο I/O και τους στόχους απόδοσης.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα