Βασική διαφορά – Προγραμματιστής έναντι διεκπεραιωτή
Ο προγραμματιστής και ο διεκπεραιωτής σχετίζονται με τον προγραμματισμό διεργασιών ενός λειτουργικού συστήματος. Η βασική διαφορά μεταξύ χρονοπρογραμματιστή και διεκπεραιωτή είναι ότι ο προγραμματιστής επιλέγει μια διεργασία από πολλές διεργασίες που θα εκτελεστούν ενώ ο διεκπεραιωτής εκχωρεί την CPU για την επιλεγμένη διαδικασία από τον προγραμματιστή.
Σε ένα σύστημα υπολογιστή, εκτελούνται πολλές διεργασίες. Προγραμματισμός είναι η διαδικασία του λειτουργικού συστήματος για να αποφασίσει ποια διαδικασία θα πρέπει να εκχωρηθεί στην CPU για την εκτέλεση πολλών διεργασιών.
Τι είναι το Scheduler;
Υπάρχουν τρεις τύποι προγραμματιστών σε ένα λειτουργικό σύστημα. Είναι ο μακροπρόθεσμος προγραμματιστής, ο βραχυπρόθεσμος προγραμματιστής και ο μεσοπρόθεσμος προγραμματιστής. Ο μακροπρόθεσμος προγραμματιστής είναι επίσης γνωστός ως προγραμματιστής εργασιών. Στο σύστημα υπολογιστή, υπάρχει ένας αριθμός διεργασιών που περιμένουν την εκτέλεση. Αυτές οι διεργασίες τοποθετούνται στη δευτερεύουσα αποθήκευση ή στην ουρά εργασιών για να εκτελεστούν αργότερα. Ο στόχος του μακροπρόθεσμου προγραμματιστή είναι να επιλέξει μια διεργασία από την ουρά εργασιών και να φέρει αυτή τη διαδικασία στην έτοιμη ουρά στην κύρια μνήμη.
Ο βραχυπρόθεσμος προγραμματιστής είναι επίσης γνωστός ως προγραμματιστής CPU. Η αποστολή του βραχυπρόθεσμου χρονοπρογραμματιστή είναι να επιλέξει μια διαδικασία στην έτοιμη ουρά που θα πρέπει να εκχωρηθεί στη CPU. Ο βραχυπρόθεσμος χρονοπρογραμματιστής θα πρέπει να επιλέξει μια διαδικασία από την έτοιμη ουρά ενώ η προηγούμενη διαδικασία μεταβαίνει σε κατάσταση αναμονής. Θα πρέπει να είναι γρήγορο διαφορετικά ο χρόνος της CPU θα χαθεί.
Εικόνα 01: Προγραμματισμός διαδικασίας
Η διαδικασία εκτέλεσης μπορεί να απαιτεί λειτουργία I/O. Έτσι, η διαδικασία πηγαίνει σε κατάσταση αναμονής. Αυτή η διαδικασία λέγεται ότι έχει ανασταλεί. Για μέγιστη χρήση της CPU, θα πρέπει να εκτελεστεί κάποια άλλη διαδικασία. Η διαδικασία που έχει ανασταλεί μεταφέρεται πίσω στη δευτερεύουσα μνήμη. Μετά από κάποιο χρονικό διάστημα, η μεταφερόμενη διαδικασία μπορεί να επιστρέψει στην κύρια μνήμη και να συνεχίσει την εκτέλεση από το σημείο που τερματίστηκε. Η μεταφορά της διαδικασίας που έχει ανασταλεί στη δευτερεύουσα μνήμη ονομάζεται εναλλαγή. Η επαναφορά της διαδικασίας στην κύρια μνήμη είναι γνωστή ως εναλλαγή εισόδου. Αυτή η εναλλαγή εισόδου και εξόδου γίνεται από τον προγραμματιστή μέσου.
Τι είναι το Dispatcher;
Όταν ο βραχυπρόθεσμος προγραμματιστής επιλέγει από την έτοιμη ουρά, ο διεκπεραιωτής εκτελεί την εργασία εκχώρησης της επιλεγμένης διεργασίας στην CPU. Μια διεργασία που εκτελείται πηγαίνει στην κατάσταση αναμονής για λειτουργία IO κλπ. Στη συνέχεια η CPU εκχωρείται σε κάποια άλλη διεργασία. Αυτή η εναλλαγή της CPU από τη μια διεργασία στην άλλη ονομάζεται εναλλαγή περιβάλλοντος. Ένας διεκπεραιωτής εκτελεί διάφορες εργασίες, όπως εναλλαγή περιβάλλοντος, ρύθμιση μητρώων χρηστών και αντιστοίχιση μνήμης. Αυτά είναι απαραίτητα για την εκτέλεση της διαδικασίας και τη μεταφορά του ελέγχου της CPU σε αυτήν τη διαδικασία. Κατά την αποστολή, η διαδικασία αλλάζει από κατάσταση ετοιμότητας σε κατάσταση λειτουργίας.
Μερικές φορές, ο διεκπεραιωτής θεωρείται ως μέρος του βραχυπρόθεσμου προγραμματιστή, επομένως ολόκληρη η μονάδα ονομάζεται προγραμματιστής βραχυπρόθεσμων όρων. Σε αυτό το σενάριο, η αποστολή του βραχυπρόθεσμου χρονοπρογραμματιστή είναι να επιλέξει μια διαδικασία από την έτοιμη ουρά και επίσης να εκχωρήσει τη CPU για αυτήν τη διαδικασία.
Ποια είναι η σχέση μεταξύ προγραμματιστή και διεκπεραιωτή;
Ο διεκπεραιωτής εκχωρεί την επιλεγμένη διαδικασία από τον βραχυπρόθεσμο προγραμματιστή στην CPU
Ποια είναι η διαφορά μεταξύ προγραμματιστή και διεκπεραιωτή;
Scheduler vs Dispatcher |
|
Ένας προγραμματιστής είναι ειδικό λογισμικό συστήματος που χειρίζεται τον προγραμματισμό διεργασιών επιλέγοντας τη διαδικασία που θα εκτελεστεί. | Ο διεκπεραιωτής είναι η μονάδα που δίνει τον έλεγχο της CPU στη διαδικασία που επιλέγεται από τον βραχυπρόθεσμο προγραμματιστή. |
Τύποι | |
Υπάρχουν τρεις τύποι προγραμματιστών γνωστών ως;
|
Δεν υπάρχει κατηγοριοποίηση για αποστολέα. |
Κύριες εργασίες | |
Ο μακροπρόθεσμος προγραμματιστής επιλέγει τη διαδικασία από την ουρά εργασιών και τη μεταφέρει στην ουρά έτοιμη. Ο βραχυπρόθεσμος προγραμματιστής επιλέγει μια διαδικασία στην ουρά έτοιμη. Ο χρονοπρογραμματιστής μέσου πραγματοποιεί την ανταλλαγή εντός, εναλλαγή εκτός της διαδικασίας. |
Ο διεκπεραιωτής εκχωρεί τη CPU στη διαδικασία που έχει επιλεγεί από τον βραχυπρόθεσμο προγραμματιστή. |
Σύνοψη – Προγραμματιστής εναντίον Διεκπεραιωτή
Ο προγραμματιστής και ο διεκπεραιωτής χρησιμοποιούνται στον προγραμματισμό διεργασιών ενός λειτουργικού συστήματος. Η διαφορά μεταξύ χρονοπρογραμματιστή και διεκπεραιωτή είναι ότι ο χρονοπρογραμματιστής επιλέγει μια διαδικασία από πολλές διεργασίες που πρόκειται να εκτελεστούν, ενώ ο διεκπεραιωτής εκχωρεί την CPU για την επιλεγμένη διαδικασία από τον προγραμματιστή.