Αλγόριθμος Χρονοπρογραμματισμού με Βάση την Προτεραιότητα
![]() |
Αυτό το λήμμα χρειάζεται μορφοποίηση ώστε να ανταποκρίνεται στις προδιαγραφές μορφοποίησης της Βικιπαίδειας. |
![]() |
Το λήμμα δεν περιέχει πηγές ή αυτές που περιέχει δεν επαρκούν. |
• Οι διεργασίες λαμβάνουν ένα επίπεδο προτεραιότητας με βάση τη πολιτική του συστήματος,
π.χ. Επείγουσες διεργασίες λειτουργικού συστήματος → διεργασίες λειτουργικού συστήματος παρασκηνίου → αλληλεπιδραστικές διεργασίες Ι/Ο-bound → αλληλεπιδραστικές διεργασίες CPUbound → διεργασίες δέσμης (βλέπε task manager Windows ή εντολή top/nice Linux)
• Η εφαρμογή μπορεί να είναι έμμεση ή άμεση (ρητή αντιστοίχιση επιπέδου με κάποιο αριθμό) ή έμμεση (επιλογή του χρονοδρομολογητή σε κάθε εκτέλεσή του με βάση τις διαθέσιμες διεργασίες).
• Για την αποφυγή πιθανής στέρησης ή λιμοκτονίας (παρατεταμένης μη εκτέλεσης) μιας διεργασίας το επίπεδο προτεραιότητας μπορεί να μειώνεται σε κάθε Ν χτύπους ρολογιού ή κάθε Ν θεματικές εναλλαγές.
• Εναλλακτικά κάθε διεργασία μπορεί να λαμβάνει ένα μέγιστο συνολικό quantum από το οποίο αφαιρείται ένα ποσό κάθε φορά που εκτελείται.
• H προτεραιότητα μπορεί να μεταβάλλεται δυναμικά με βάση τη τρέχουσα συμπεριφορά της διεργασίας (μετάπτωση από CPU-bound σε I/O-bound ή Ι/Ο-bound μετά από μεγάλη αναμονή Ε/Ε).
• Συνήθως στα σύγχρονα συστήματα τα επίπεδα προτεραιότητας υλοποιούνται με διαφορετικές ουρές. Οι διεργασίες εκχωρούνται κατ’ αρχήν σε μια ουρά
• Οι αλληλεπιδραστικές διεργασίες ανήκουν στις ουρές υψηλής προτεραιότητας, ενώ οι διεργασίες δέσμης στις ουρές χαμηλής προτεραιότητας.
• Οι προσαρμογές των επιπέδων προτεραιότητας σημαίνουν μετακίνηση της διεργασίας από μια ουρά σε άλλη.
• Σύστημα με τέσσερα επίπεδα προτεραιότητας: κάθε ουρά έτοιμων εργασιών εκτελεί ξεχωριστό αλγόριθμο χρονοπρογραμματισμού (ή τον ίδιο αλγόριθμο με διαφορετικό tunning). Οι ουρές χαμηλότερης προτεραιότητας εξυπηρετούνται μόνο αν οι ουρές ανώτερης προτεραιότητας είναι άδειες.