Χρονοπρογραμματισμός ΚΜΕ: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
JohnMad (συζήτηση | συνεισφορές)
Αναφορά στον χρονομερισμό
JohnMad (συζήτηση | συνεισφορές)
μΧωρίς σύνοψη επεξεργασίας
Γραμμή 1:
Στην [[πληροφορική]] '''χρονοπρογραμματισμός ΚΜΕ''' ([[αγγλική γλώσσα|αγγλ.]]: ''scheduling'') ονομάζεται η χαρακτηριστική δυνατότητα των [[λειτουργικό σύστημα|λειτουργικών συστημάτων]], υλοποιούμενη συνήθως από έναν μηχανισμό του [[πυρήνας (υπολογιστές)|πυρήνα]] ονόματι ''χρονοπρογραμματιστής'', με την οποία συντονίζεται η συνύπαρξη πολλαπλών εκτελούμενων [[διεργασία (υπολογιστές)|διεργασιών]] στη μνήμη του υπολογιστή. Με τον χρονοπρογραμματισμό επιτυγχάνεται επομένως η ''πολυδιεργασία'', η οποία με τη σειρά της αποτελεί έναν τρόπο πρακτικής υλοποίησης [[ταυτοχρονισμός|ταυτοχρονισμού]] καθώς, είτε με κατάλληλη κατανομή του χρόνου του μοναδικού επεξεργαστή (''ψευδοπαράλληλη εκτέλεση'') είτε λόγω της ύπαρξης [[παράλληλο σύστημα|περισσοτέρων του ενός επεξεργαστών]] (''παράλληλη εκτέλεση''), είναι εφικτή η ταυτόχρονη εκτέλεση πολλαπλών διεργασιών στον ίδιο [[ηλεκτρονικός υπολογιστής|ηλεκτρονικό υπολογιστή]].
 
Στα σύγχρονα '''προεκτοπιστικά''' (αγγλ.: ''preemptive'') λειτουργικά συστήματα, στον [[Κεντρική Μονάδα Επεξεργασίας|επεξεργαστή]] συμβαίνει αυτόματη εναλλαγή διεργασιών κάθε λίγες διακοπές του ρολογιού (στην αρχή κάθε «χρονικού κβάντου») ώστε να επιτευχθεί η ψευδοπαράλληλη εκτέλεση πολλαπλών διεργασιών. Στην πραγματικότητα οι διεργασίες εναλλάσσονται στον επεξεργαστή με εξαιρετικά μεγάλη συχνότητα (συνήθως το κβάντο διαρκεί κάποια millisecond). Η εναλλαγή αυτή ονομάζεται '''θεματική εναλλαγή''' (αγγλ.: ''context switch'') και, προκειμένου να είναι εφικτή, πρέπει όλες οι πληροφορίες που είναι αποθηκευμένες στην τοπική μνήμη του επεξεργαστή (στους [[καταχωρητής|καταχωρητές]]) για την εκτελούμενη διεργασία, να αποθηκευτούν σε έναν χώρο κάπου στην [[κύρια μνήμη]] κατά τη θεματική εναλλαγή. Έτσι, όταν έρθει ξανά η σειρά αυτής της διεργασίας να εκτελεστεί, θα μπορούν να φορτωθούν πάλι πίσω στους καταχωρητές και η εκτέλεση να συνεχίσει από εκεί που σταμάτησε.
 
Σε παλαιότερα υπολογιστικά συστήματα (των [[Δεκαετία 1960|δεκαετιών του 1960]] και του [[Δεκαετία 1970|του 1970]]) ήταν σε χρήση ο όρος '''πολυπρογραμματισμός''' (αγγλ: ''multiprogramming'') για να περιγράψει πολυδιεργασιακά αλλά μη προεκτοπιστικά συστήματα, όπου μία διεργασία απελευθέρωνε τον επεξεργαστή μόνο εκούσια (μέσω ρητής προγραμματιστικής εντολής) ή όταν ανεσταλλόταν η λειτουργία της (π.χ. κατά την αναμονή της για [[είσοδος|είσοδο]] ή [[έξοδος|έξοδο]] [[δεδομένα|δεδομένων]]). Επίσης χρησιμοποιούνταν ο όρος '''χρονομερισμός''' (αγγλ: ''time-sharing'') για αναφορά στον πολυπρογραμματισμό ή (αργότερα) την προεκτοπιστική πολυδιεργασία, όπου οι ψευδοπαράλληλα εκτελούμενες διεργασίες είχαν εκκινηθεί από διαφορετικούς χρήστες, οι οποίοι έτσι διαμοιράζονταν την υπολογιστική ισχύ ενός κεντρικού υπολογιστή.