Τρίτη 2 Απριλίου 2013

Τα Λειτουργικά Συστήματα και οι κατηγορίες τους



Το Λειτουργικό Σύστημα είναι μια συλλογή από προγράμματα τα οποία ενεργούν ως «ενδιάμεσο» μεταξύ των χρηστών (π.χ. προγράμματα, εφαρμογές, συσκευές, άνθρωποι) και του Η/Υ. Αυτά τα προγράμματα μπορεί να είναι γραμμένα σε γλώσσα μηχανής ή assembly, ή ακόμα και σε μια γλώσσα όπως η C. Τα τελευταία χρόνια παρουσιάζεται η τάση ορισμένα από αυτά τα προγράμματα να είναι γραμμένα σε μικροκώδικα (κώδικα στοιχειωδών εντολών, ενσωματωμένο στο hardware). Χωρίς αμφιβολία, δύο είναι οι βασικοί στόχοι που εξυπηρετεί ένα Λειτουργικό Σύστημα: 

• Να διαχειρίζεται τα δομικά στοιχεία (π.χ. μνήμη, hardware) του υπολογιστή
• Να εξασφαλίζει τη λειτουργία του Η/Υ με αποδοτικό τρόπο (ως προς το ποσοστό χρόνου χρήσης πόρων, τους χρόνους απόκρισης σε εντολές, τη διευκόλυνσητου χρήστη κτλ.).

Το Λειτουργικό Σύστημα ως ενδιάμεσο μεταξύ των χρηστών και του Η/Υ:

1. Παρέχει διευκολύνσεις στο χρήστη για να μπορεί να χρησιμοποιεί τους πόρους του Η/Υ.
        Με τον όρο «πόροι ενός Η/Υ» εννοούμε:
            • Τα εργαλεία Eισόδου/Eξόδου
            • Τη μνήμη
            • Την κεντρική μονάδα επεξεργασίας
            • ∆εδομένα με κάποιας μορφής οργάνωση (π.χ. αρχεία, μηνύματα)


2. Ελέγχει την κατανομή των πόρων ενός Η/Υ στους χρήστες του με κάποια πολιτική κατανομής πόρων κατά τρόπο αποδοτικό, φιλικό και δίκαιο, χωρίς να δημιουργούνται προβλήματα λειτουργίας.

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

Ταξινόμηση Λειτουργικών Συστημάτων
Μια πρώτη ταξινόμηση των Λειτουργικών Συστημάτων μπορεί να γίνει σε σχέση με το είδος της αλληλεπίδρασης που επιτρέπεται ανάμεσα σε ένα χρήστη και στο πρόγραμμά του, καθώς και στους περιορισμούς που μπαίνουν σε σχέση με την απόκριση του συστήματος. Υπάρχουν τρεις ιδανικές κατηγορίες Λειτουργικών Συστημάτων με βάση την πιο πάνω ταξινόμηση:

  1. Λειτουργικό σύστημα ομαδικής επεξεργασίας. Είναι ένα Λειτουργικό Σύστημα στο οποίο οι εργασίες (τα προγράμματα) των χρηστών υποβάλλονται στον Η/Υ σε ομάδες. Σε αυτού του είδους τα Λειτουργικά Συστήματα, δεν είναι δυνατή καμιά αλληλεπίδραση ανάμεσα σε ένα χρήστη και στο πρόγραμμά του κατά τη διάρκεια της επεξεργασίας του προγράμματος. Ο χρόνος απόκρισης του Η/Υ για κάθε χρήστη είναι το χρονικό διάστημα από την υποβολή ως την παραλαβή της εργασίας του χρήστη. Το Λειτουργικό Σύστημα έχει τη δυνατότητα να κάνει καλή διανομή πόρων και να εφαρμόσει καλή πολιτική ως προς το χρόνο και τη σειρά εκτέλεσης των εργασιών.
  2. Λειτουργικό σύστημα με μοίρασμα χρόνου. Εδώ το Λειτουργικό Σύστημα παρέχει τις υπολογιστικές του υπηρεσίες σε πολλούς χρήστες παράλληλα, επιτρέποντας στον καθέναν από αυτούς να αλληλεπιδρά με το πρόγραμμά του. Το φαινόμενο της «ταυτόχρονης» πρόσβασης στον Η/Υ είναι φυσικά απατηλό. Μοιράζοντας όμως το χρήσιμο χρόνο της ΚΜΕ (Κεντρική Μονάδα Επεξεργασίας) και άλλους πόρους του Η/Υ ανάμεσα σε πολλούς χρήστες, το Λειτουργικό Σύστημα δημιουργεί την ψευδαίσθηση στους χρήστες ότι ο καθένας από αυτούς έχει το σύνολο των πόρων του Η/Υ στη διάθεσή του. Το Λειτουργικό Σύστημα κατορθώνει να δίνει πάντοτε κάποια απόκριση σε οποιαδήποτε απαίτηση του χρήστη μέσα σε λίγο χρόνο. Στην πραγματικότητα, ο Η/Υ στρέφει την προσοχή του στην κάθε εργασία για ένα μικρό κομμάτι του χρόνου. Αν η εργασία δεν τελειώσει στο τέλος αυτού του χρόνου, τότε διακόπτεται προσωρινά και «αποθηκεύεται» σε μια ουρά αναμονής. Αυτό επιτρέπει σε κάποια άλλη εργασία να πάρει χρόνο στον Η/Υ κ.ο.κ.
  3. Λειτουργικό σύστημα πραγματικού χρόνου. Το Λειτουργικό αυτό Σύστημα εξυπηρετεί τις εργασίες που του υποβάλλονται μέσα σε αυστηρούς χρονικούς περιορισμούς. ∆ηλαδή ο χρόνος απόκρισης του Η/Υ είναι αυστηρά ορισμένος. Τέτοια Λειτουργικά Σύστημα συναντάμε, για παράδειγμα, σε αεροδρόμια για τον έλεγχο της εναέριας κυκλοφορίας. Σήματα διακοπής από τις εργασίες καλούν τον Η/Υ να διαθέσει υπολογιστικούς πόρους σε αυτές. Αν αυτά τα σήματα δεν πάρουν απάντηση σύντομα ή αν η επιθυμητή λειτουργία του Η/Υ αργήσει, τότε η εργασία ίσως αποτύχει ως προς το σκοπό της ή δεχτεί λάθος απαντήσεις.
Ένα συγκεκριμένο Λειτουργικό Σύστημα μπορεί να ανήκει σε περισσότερες από μία από τις πιο πάνω εξιδανικευμένες κατηγορίες. Είναι συνηθισμένο φαινόμενο τα Λειτουργικά Συστήματα με μοίρασμα χρόνου και αυτά του πραγματικού χρόνου να έχουν τη δυνατότητα να συμπεριφέρονται και ως Λειτουργικά Συστήματα ομαδικής επεξεργασίας. Αυτό το κατορθώνουν με διαφανή προς τους χρήστες τρόπο, όταν δεν υπάρχει στο προσκήνιο καμιά εργασία.

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

Μια άλλη τεχνική με την οποία μπορεί ένα Λειτουργικό Σύστημα να επεξεργάζεται πολλές εργασίες ταυτόχρονα είναι η τεχνική της εναλλαγής. Η βασική ιδέα είναι ότι στην κύρια μνήμη βρίσκεται κάθε φορά μια μόνο εργασία (ή λίγες μόνο εργασίες), ενώ στο δίσκο (βοηθητική μνήμη) βρίσκονται πολλές εργασίες. Το Λειτουργικό Σύστημα εναλλάσσει την εργασία που βρίσκεται στην κύρια μνήμη με μια άλλη από αυτές που βρίσκονται στο δίσκο. Αν η εργασία που μετακινήθηκε προς το δίσκο δεν έχει τελειώσει, θα μεταφερθεί αργότερα ξανά στην κύρια
μνήμη. Τέτοια Λειτουργικά Συστήματα συναντάμε κυρίως σε μικρά υπολογιστικά συστήματα με μοίρασμα χρόνου. Αξίζει να αναεφρθεί μια έννοια που συχνά συγχέεται με τον πολυπρογραμματισμό, η έννοια της πολυεπεξεργασίας. Η «πολυεπεξεργασία» περιγράφει την αρχιτεκτονική του υλικού του υπολογιστικού συστήματος, ενώ ο «πολυπρογραμματισμός» έχει σχέση με Λειτουργικά Συστήματα, δηλαδή με το λογικό. Για να γίνουμε πιο σαφείς, θα δώσουμε και τον ορισμό της πολυεπεξεργασίας. Ένα υπολογιστικό σύστημα με πολυεπεξεργασία είναι ένα συγκρότημα υπολογιστικού υλικού με περισσότερους από έναν επεξεργαστές, οι οποίοι έχουν τη δυνατότητα να λειτουργούν ανεξάρτητα και παράλληλα. Ένα τέτοιο σύστημα περιλαμβάνει κεντρικές μονάδες επεξεργασίας, επεξεργαστές εισόδου – εξόδου, κανάλια δεδομένων, καθώς και επεξεργαστές ειδικής χρήσης.

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου