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

Αναζήτηση

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

Τι θα μάθεις;

Όταν ολοκληρώσεις το μάθημα αυτό, θα μπορείς: - Να περιγράφεις πώς ένα ΛΣ μπορεί να κατανέμει το χρόνο του μεταξύ πολλών προγραμμάτων - Να εξηγείς τι είναι η διεργασία και σε τι διαφέρει από ένα πρόγραμμα - Να ορίζεις τι είναι η μεταγωγή περιβάλλοντος - Να εξηγείς τι είναι η ελαφρή διεργασία και σε τι διαφέρει από μία διεργασία - Να προσδιορίζεις πότε είναι προτιμότερο να χρησιμοποιούμε τις ελαφρές διεργασίες

Διάγραμμα 1

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

Ας υποθέσουμε ότι ο ζαχαροπλάστης (η ΚΜΕ) έχει να παρασκευάσει τέσσερα γλυκά, και οι οδηγίες τους αναφέρουν ότι απαιτούν: το Α 35' (10' προετοιμασία και 25' ψήσιμο), το Β 40', το Γ 45' (10' προετοιμασία, 25' ψήσιμο και 10' ολοκλήρωση) και το Δ 15' (5' προετοιμασία και 10' ψήσιμο) αντίστοιχα. Αν η εκτέλεση των συνταγών γίνει με τη σειρά παραλαβής τους, χωρίς παράλληλη χρησιμοποίηση του φούρνου, το όλο έργο μπορεί να οργανωθεί στις φάσεις του Διαγράμματος 1.

Αν η εκτέλεση των συνταγών γίνεται με τη σειρά παραλαβής, αλλά με παράλληλη προετοιμασία και χρήση του φούρνου, έχουμε σημαντική βελτίωση στον απαιτούμενο χρόνο, όπως βλέπουμε στο Διάγραμμα 2.

Διάγραμμα 2

Διάγραμμα 3

Αν όμως ο ζαχαροπλάστης αφιερώνει 5' σε κάθε γλυκό, τότε το πρόγραμμα παρασκευής τους μπορεί να οργανωθεί σαν το Διάγραμμα 3.

Ο τρόπος αυτός παρασκευής των γλυκών έχει ως αποτέλεσμα τη γρηγορότερη ολοκλήρωση αυτών που παρασκευάζονται εύκολα, ανεξάρτητα από τη σειρά με την οποία δόθηκαν οι συνταγές.

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

Η διαδικασία αυτή είναι αρκετά πολύπλοκη και επιβαρύνει τις απαιτήσεις του ίδιου του ΛΣ. Το όφελος όμως από αυτή είναι (1) η αύξηση της απόδοσης, αφού το υλικό χρησιμοποιείται παράλληλα και (2) η μείωση του χρόνου ανακύκλωσης, αφού τα προγράμματα κατά μέσο όρο εξυπηρετούνται πιο γρήγορα.

Η συνεχής εναλλαγή ανάμεσα σε πολλές συνταγές είναι πολύ εύκολο να προκαλέσει σφάλματα. Για να μη γίνονται λοιπόν λάθη, πρέπει ο ζαχαροπλάστης κατά την εναλλαγή από τη μια συνταγή στην άλλη να κάνει ορισμένες ενέργειες όπως:

- Να σημειώνει μέχρι ποιο σημείο της τρέχουσας συνταγής έχει φθάσει, ώστε να μπορεί να συνεχίσει από το σωστό σημείο όταν έλθει ξανά η σειρά της.

- Να τοποθετήσει ό,τι από το γλυκό έχει παρασκευάσει μέχρι εκείνη τη στιγμή σε ένα ορισμένο μέρος, για να μπορεί αργότερα να το ξαναπάρει.

- Αν κάποιο βήμα της τρέχουσας συνταγής δεν είναι δυνατόν να διακοπεί, όπως π.χ. όταν κάτι ψήνεται στο φούρνο, πρέπει να σημειώσει ότι αυτό το βήμα εκκρεμεί. Όταν το ψήσιμο ολοκληρωθεί, θα τοποθετήσει το ψημένο γλυκό μαζί με τα υπόλοιπα υλικά που θα ολοκληρώσουν την παρασκευή του γλυκού και θα βάλει στο φούρνο ό,τι από την επόμενη συνταγή μέχρι τώρα βρισκόταν σε αναμονή.

Όπως στο παράδειγμα του ζαχαροπλαστείου, έτσι και στα υπολογιστικά συστήματα πρέπει να υπάρχει ένα σύνολο πληροφοριών που περιγράφουν την κατάσταση στην οποία βρίσκεται το πρόγραμμα που εκτελείται, για να μπορεί να συνεχιστεί η εκτέλεσή του από το σωστό σημείο την επόμενη φορά που θα έρθει η σειρά του.

Βλέπουμε λοιπόν ότι ένα ΛΣ διαχειρίζεται προγράμματα σε εκτέλεση· μπορεί π.χ. να εκτελεί πολλές φορές το ίδιο πρόγραμμα, μία φορά για κάθε χρήστη. Τα εκτελούμενα προγράμματα αποτελούν ανεξάρτητες οντότητες για το ΛΣ και ονομάζονται διεργασίες (processes).

Μια διεργασία είναι ένα πρόγραμμα ή ένα αυτόνομο τμήμα προγράμματος υπό εκτέλεση. Οι όροι πρόγραμμα και διεργασία διαφοροποιούνται από το γεγονός ότι το πρόγραμμα είναι παθητική οντότητα ενώ η διεργασία είναι ενεργητική.

Η εναλλαγή από τη μια διεργασία στην άλλη ονομάζεται μεταγωγή περιβάλλοντος (context switching). Οι πληροφορίες που κρατούνται κατά τη μεταγωγή περιβάλλοντος αφορούν τα ακόλουθα: - Από ποια εντολή του προγράμματος πρέπει να συνεχισθεί η εκτέλεση της διεργασίας την επόμενη φορά - Ποια είναι η κατάσταση της ΚΜΕ, ώστε να επαναφερθεί για να συνεχιστεί σωστά η εκτέλεση της διεργασίας - Ποια είναι τα ενδιάμεσα αποτελέσματα που έχουν υπολογιστεί μέχρι εκείνη τη στιγμή

Το ΛΣ καταγράφει αυτές (και άλλες) πληροφορίες για κάθε διεργασία σε μια ειδική περιοχή της μνήμης που ονομάζεται Σύνολο Ελέγχου Διεργασίας (Process Control Block), ή αλλιώς ΣΕΔ (PCB).