Διδακτικά Βιβλία του Παιδαγωγικού Ινστιτούτου

Αναζήτηση

Βρες
Εμφάνιση

4.3.1 Διαχείρηση ΚΜΕ

Ένα σημαντικό χαρακτηριστικό των σύγχρονων λειτουργικών συστημάτων είναι η έννοια του πολυπρογραμματισμού. Ο πολυπρογραμματισμός συνίσταται στην ικανότητα του λειτουργικού συστήματος, την ίδια χρονική στιγμή που υπάρχουν πολλά προγράμματα "φορτωμένα" στην κεντρική μνήμη, να καθοδηγεί την ΚΜΕ να τα εκτελέσει όλα μαζί. Βέβαια, προβάλλει εύλογα το ερώτημα πώς είναι δυνατόν μια ΚΜΕ να εκτελέσει πολλά προγράμματα ταυτόχρονα;

Η ιδέα είναι απλή: όταν η ΚΜΕ εκτελεί ένα πρόγραμμα, υπάρχουν χρονικά διαστήματα κατά τα οποία θα πρέπει να μένει ανενεργή, αναμένοντας την ολοκλήρωση κάποιας επεξεργασίας που δεν απαιτεί δραστηριότητα από την ίδια -π.χ. είναι δυνατόν να αναμένει επικοινωνία με μια περιφερειακή συσκευή μέσω της μονάδας εισόδου/ εξόδου, όπως είναι η μονάδα του σκληρού δίσκου. Κατά τη διάρκεια, λοιπόν, αυτών των διαστημάτων, που για τους χρονικούς ρυθμούς της ΚΜΕ είναι "δεκαετίες", είναι δυνατή η αξιοποίησή της στην εκτέλεση κάποιου άλλου προγράμματος που βρίσκεται στην κεντρική μνήμη και απαιτεί για την εκτέλεσή του την τρέχουσα χρονική στιγμή τη δραστηριοποίηση της ΚΜΕ.

Η υλοποίηση αυτής της ιδέας είναι ο πολυπρογραμματισμός, με τον οποίο επιτεύχθηκαν σημαντικά οφέλη όπως: α) μεγαλύτερη αξιοποίηση των δυνατοτήτων της ΚΜΕ και β) περισσότερες εργασίες στη μονάδα του χρόνου.

Αποσαφηνίζοντας το δεύτερο επίτευγμα, θα σκεφτούμε, βέβαια, ότι σε κάθε χρονική στιγμή η ΚΜΕ εκτελεί ένα μόνο πρόγραμμα, αλλά στη μονάδα του χρόνου -π.χ. σε 1 sec- η ΚΜΕ εκτελεί συνολικά πολλά προγράμματα.

Η υλοποίηση της έννοιας του πολυπρογραμματισμού επιτελείται από το ΛΣ μέσω της διαχείρισης της ΚΜΕ ή του χρονοπρογραμματισμού της. Η εκτέλεση ενός προγράμματος περιλαμβάνει συνήθως πολλές επιμέρους επεξεργασίες, που συνιστούν το σύνολο των επεξεργασιών του. Άρα, όταν έχουμε, για παράδειγμα, δύο προγράμματα "φορτωμένα" στην κεντρική μνήμη, έχουμε δύο σύνολα από επεξεργασίες.

Σύμφωνα με την ιδέα του πολυπρογραμματισμού, θα ήταν ουσιαστικό για λόγους οικονομίας χρόνου και πόρων να μην εκτελεστούν τα δύο προγράμματα ακολουθιακά, δηλαδή πρώτα οι επεξεργασίες του ενός και έπειτα του άλλου, αλλά να επιλεγεί για εκτέλεση μια σειρά επεξεργασιών και από τα δύο προγράμματα, ανάλογα με τα ιδιαίτερα χαρακτηριστικά καθεμιάς (π.χ. ανάλογα με το βαθμό σημαντικότητας). Έτσι, μέσω του χρονοπρογραμματισμού της ΚΜΕ, το ΛΣ με την εφαρμογή κατάλληλων αλγόριθμων επιτρέπει στην ΚΜΕ να αντιληφθεί ποια επεξεργασία τίνος προγράμματος θα εκτελέσει αυτή σε κάθε χρονική στιγμή, με σκοπό να επιτευχθούν τα θετικά αποτελέσματα του πολυπρογραμματισμού (Σχήμα 4.2). Η περιγραφή αυτών των αλγόριθμων δεν εμπίπτει στους στόχους αυτού του βιβλίου.

Στο σημείο αυτό θα ήταν σκόπιμο να αναφερθούμε στην έννοια της ουράς αναμονής. Υπάρχει συχνά το ενδεχόμενο περισσότερες από μια επεξεργασίες να ζητούν ταυτόχρονα την υλοποίησή τους από την ΚΜΕ. Για παράδειγμα, μπορεί σε ένα σύστημα πολλών χρηστών περισσότεροι από ένας χρήστες να επιθυμούν ταυτόχρονα την εκτύπωση κάποιου κειμένου. Όμως, επειδή η ΚΜΕ δεν μπορεί να εκτελέσει τις επεξεργασίες αυτές τη συγκεκριμένη χρονική στιγμή επειδή ήδη εξυπηρετείται μια αντίστοιχη εργασία κάποιου άλλου χρήστη, αυτές τοποθετούνται στην ουρά του υπολογιστή. Όταν, μετά την πάροδο κάποιου χρονικού διαστήματος, η ΚΜΕ ολοκληρώσει τις προηγούμενες επεξεργασίες, τότε επιλέγονται από την ουρά αναμονής (με βάση ειδικά κριτήρια, όπως χρόνο παραμονής σε αυτήν ή προτεραιότητες) οι επόμενες επεξεργασίες για υλοποίηση.

Έστω Α1… Α4 επεξεργασίες προγράμματος Α και Β1,… Β5 επεξεργασίες προγράμματος Β και ότι τα δύο προγράμματα πρέπει να εκτελεστούν από την ΚΜΕ.

Σχήμα 4.2: Δύο σχηματικές εκδοχές της χρονικής εξέλιξης της εκτέλεσης δύο προγραμμάτων