Χρονοπρογραμματισμός ΚΜΕ: Διαφορά μεταξύ των αναθεωρήσεων
Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
μΧωρίς σύνοψη επεξεργασίας |
μΧωρίς σύνοψη επεξεργασίας |
||
Γραμμή 1:
Στην [[επιστήμη υπολογιστών]] '''χρονοπρογραμματισμός''' (αγγλ. scheduling) ονομάζεται η αρμοδιότητα των [[λειτουργικό σύστημα|λειτουργικών συστημάτων]], υλοποιούμενη συνήθως από έναν μηχανισμό του [[πυρήνας (υπολογιστές)|πυρήνα]] ονόματι ''χρονοπρογραμματιστής'', με την οποία συντονίζεται η συνύπαρξη πολλαπλών εκτελούμενων [[διεργασία (υπολογιστές)|διεργασιών]] στη μνήμη του υπολογιστή (χαρακτηριστικό γνωστό ως '''[[ταυτοχρονισμός]]''', '''[[πολυδιεργασία]]''' ή '''πολυπρογραμματισμός'''). Έτσι, είτε με κατάλληλη κατανομή του χρόνου του μοναδικού επεξεργαστή (''ψευδοπαράλληλη εκτέλεση'') είτε λόγω της ύπαρξης [[παράλληλο σύστημα|
Στα σύγχρονα ''προεκτοπιστικά'' (preemptive) λειτουργικά συστήματα, στον [[επεξεργαστής|επεξεργαστή]] συμβαίνει αυτόματη εναλλαγή διεργασιών κάθε λίγες διακοπές του ρολογιού (στην αρχή κάθε «χρονικού κβάντου») ώστε να επιτευχθεί η ψευδοπαράλληλη εκτέλεση πολλαπλών διεργασιών. Στην πραγματικότητα οι διεργασίες εναλλάσσονται στον επεξεργαστή με εξαιρετικά μεγάλη συχνότητα (συνήθως το κβάντο διαρκεί κάποια millisecond). Η εναλλαγή αυτή ονομάζεται '''θεματική εναλλαγή''' (context switch) και, προκειμένου να είναι εφικτή, πρέπει όλες οι πληροφορίες που είναι αποθηκευμένες στην τοπική μνήμη του επεξεργαστή
== Επισκόπηση ==
Το ποια διεργασία εκτελείται κάθε στιγμή καθορίζεται από τον χρονοπρογραμματιστή του συστήματος, η συμπεριφορά του οποίου συνήθως δεν μπορεί να προβλεφθεί ή να τροποποιηθεί από τον χρήστη. Προκειμένου
Ο απαιτούμενος για τη θεματική εναλλαγή χρόνος είναι ουσιαστικά χαμένος χρόνος, μία επιβάρυνση για το σύστημα αφού κατά τη διάρκεια αυτής της διαδικασίας δεν εκτελούνται υπολογισμοί των χρηστών. Το πόσο μεγάλος θα είναι αυτός ο χρόνος εξαρτάται από την υποστήριξη που παρέχει το υλικό (π.χ. ειδικές εντολές για διευκόλυνση της θεματικής εναλλαγής) και από την πολυπλοκότητα της υλοποίησης του χρονοπρογραμματιστή και του επιλεγμένου αλγορίθμου.
Γραμμή 11:
===Προεκτοπιστικές πολιτικές===
====Χρονοπρογραμματισμός εκ περιτροπής (Round-Robin)====
Ο αλγόριθμος χρονοπρογραμματισμού '''Round-Robin''', γνωστός και σαν ''αλγόριθμος RR'' ή ''χρονοπρογραμματισμός εκ περιτροπής'', είναι ένας από τους παλαιότερους, πιο δίκαιους και πιο διαδεδομένους αλγόριθμους χρονοπρογραμματισμού
Ο αλγόριθμος διατηρεί μια [[FIFO]] [[ουρά (υπολογιστές)|ουρά]] για διεργασίες έτοιμες προς εκτέλεση («ready»). Στη συνέχεια, η διεργασία στην αρχή της ουράς εκτελείται για ένα κλάσμα χρόνου (το κβάντο) ή μέχρι να τεθεί υπό αναστολή (block). Αμέσως μετά τοποθετείται στο τέλος της ουράς και ο χρόνος δίνεται στην επόμενη διεργασία που βρίσκεται στην αρχή<ref>Jean J. Labrosse, ''MicroCOS-II: The Real-Time Kernel'', Newnes 2002, σελ. 45, ISBN 9781578201037</ref>.
===Μη προεκτοπιστικές πολιτικές===
|