"Institute of Educational Policy" Books
Είδη χρονοδρομολόγησης
Τα δυο αυτά επίπεδα χρονοδρομολόγησης γίνονται ανεξάρτητα· υπάρχουν λοιπόν στο ΛΣ δυο χρονοδρομολογητές (schedulers), ένας για κάθε επίπεδο.
- Ο μακροχρόνιος χρονοδρομολογητής ή χρονοδρομολογητής εργασιών (long term scheduler ή job scheduler), καθορίζει ποιες διεργασίες (προγράμματα έτοιμα να εκτελεστούν) εισέρχονται στο σύστημα για εκτέλεση. Από όλες τις διεργασίες που έχουν υποβληθεί από τους χρήστες για εκτέλεση, και βρίσκονται σε κάποια μονάδα μαζικής αποθήκευσης, ο μακροχρόνιος χρονοδρομολογητής επιλέγει ορισμένες και τις φορτώνει στη μνήμη για επεξεργασία.
- Ο βραχυχρόνιος χρονοδρομολογητής ή χρονοδρομολογητής ΚΜΕ (short term scheduler ή CPU scheduler), επιλέγει για να εκτελέσει μια από τις διεργασίες οι οποίες είναι φορτωμένες στη μνήμη και είναι έτοιμες να χρησιμοποιήσουν την ΚΜΕ. Οι διεργασίες αναμένουν στη λίστα έτοιμων διεργασιών (τη λίστα του ΛΣ με τις διεργασίες που μπορούν να εκτελεστούν από την ΚΜΕ), από όπου κάνει την επιλογή του ο βραχυχρόνιος χρονοδρομολογητής.
Η κύρια διαφοροποίηση μεταξύ των δυο αυτών χρονοδρομολογητών είναι η συχνότητα με την οποία εκτελούνται. Ο μακροχρόνιος χρονοδρομολογητής εκτελείται σε αραιά χρονικά διαστήματα, ενώ αντίθετα ο βραχυχρόνιος εκτελείται πολύ συχνά (π.χ. κάθε 10 msec). Για να μην επιβαρύνει λοιπόν το σύστημα, ο βραχυχρόνιος χρονοδρομολογητής πρέπει να είναι πολύ γρήγορος στην επιλογή της διεργασίας που θα εκτελεστεί.
Εκτός από τους δυο αυτούς χρονοδρομολογητές, πολλές φορές υπάρχει και ένα ενδιάμεσο επίπεδο χρονοδρομολόγησης, το οποίο αναλαμβάνει ο μεσοχρόνιος χρονοδρομολογητής (mid term scheduler). Αυτός ελέγχει σε τακτά χρονικά διαστήματα τη λίστα έτοιμων διεργασιών, και επιλέγει μερικές φορές από αυτή κάποιες διεργασίες οι οποίες διακόπτονται προσωρινά. Σε άλλες περιπτώσεις ενεργοποιεί ξανά κάποιες διεργασίες που είχε διακόψει παλαιότερα και τις επιστρέφει στη λίστα έτοιμων διεργασιών για εκτέλεση. Με τον τρόπο αυτό, επιδιώκεται να είναι ομοιόμορφα κατανεμημένο το υπολογιστικό φορτίο κατά τη λειτουργία του υπολογιστή και ο χρόνος απόκρισης να μην ξεφεύγει από κάποια όρια αποδεκτής λειτουργίας.
Στα σχήματα παριστάνονται τα διάφορα στάδια της χρονοδρομολόγησης από τα οποία περνά μια διεργασία. Η είσοδός της στην ουρά των έτοιμων διεργασιών γίνεται από το μακροχρόνιο χρονοδρομολογητή, και η μετακίνησή της από και προς την ΚΜΕ από το βραχυχρόνιο. Ο μεσοχρόνιος χρονοδρομολογητής μετακινεί διεργασίες προς και από μια άλλη ουρά διεργασιών, οι οποίες βρίσκονται προσωρινά εκτός του ανταγωνισμού για χρήση της ΚΜΕ.
Όταν μια διεργασία αφήνει την ΚΜΕ μπορεί να επιστρέψει στη λίστα έτοιμων διεργασιών, αλλά υπάρχει και η περίπτωση να βρεθεί σε μια ουρά αναμονής, π.χ. για είσοδο/έξοδο δεδομένων από κάποια συσκευή. Η είσοδος/έξοδος -αλλιώς Ε/Ε - δεδομένων (data input/output, I/O) περιλαμβάνει λειτουργίες όπως ανάγνωση από το σκληρό δίσκο, αποστολή δεδομένων στον εκτυπωτή μέσω της παράλληλης θύρας, αποστολή δεδομένων από την κάρτα δικτύου. Γενικά η διεκπεραίωση Ε/Ε είναι πολύ πιο αργή από την εκτέλεση εντολών της ΚΜΕ· κατά τη διάρκεια μιας μόνο ανάγνωσης από το σκληρό δίσκο μπορούν να εκτελεστούν χιλιάδες εντολές από την ΚΜΕ. Όσο λοιπόν μια διεργασία αναμένει την ολοκλήρωση μιας λειτουργίας Ε/Ε μπορεί να παραχωρήσει την ΚΜΕ σε άλλες, και αυτή περιμένει σε μια ουρά την ολοκλήρωση της λειτουργίας Ε/Ε. Η παράλληλη εκτέλεση Ε/Ε από μια διεργασία και εκτέλεση στην ΚΜΕ από μια άλλη βελτιώνει την απόδοση του συστήματος.