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

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