Leitourgika sistimata 2

75
Ενότητα 1 Εισαγωγικές Έννοιες Οι διαφάνειες αυτές έχουν συμπληρωματικό και επεξηγηματικό χαρακτήρα και σε καμία περίπτωση δεν υποκαθιστούν το βιβλίο Γιώργος Α. Παπαδόπουλος Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ222: Λειτουργικά Συστήματα (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Operating Systems: Internals and Design Principles, 6/E, William Stallings)

Transcript of Leitourgika sistimata 2

Page 1: Leitourgika sistimata 2

Ενότητα 1Εισαγωγικές Έννοιες

Οι διαφάνειες αυτές έχουνσυμπληρωματικό και επεξηγηματικόχαρακτήρα και σε καμία περίπτωση

δεν υποκαθιστούν το βιβλίο

Γιώργος Α. ΠαπαδόπουλοςΤμήμα ΠληροφορικήςΠανεπιστήμιο Κύπρου

ΕΠΛ222: Λειτουργικά Συστήματα(μετάφραση στα ελληνικά των διαφανειών του βιβλίου Operating Systems: Internals and

Design Principles, 6/E, William Stallings)

Page 2: Leitourgika sistimata 2

2

Περιεχόμενα

–Στόχοι και λειτουργίες του Λ.Σ.– Η εξέλιξη των Λ.Σ.– Κύρια επιτεύγματα.– Εξελίξεις που οδήγησαν στα μοντέρνα Λ.Σ.– Microsoft Windows.– Συστήματα UNIX.– Linux.

Page 3: Leitourgika sistimata 2

3

Λειτουργικό Σύστημα

• Ένα πρόγραμμα που ελέγχει την εκτέλεση τωνπρογραμμάτων εφαρμογών.

• Μία διασύνδεση (interface) μεταξύ των εφαρμογών καιτης μηχανής.

• Βασικοί στόχοι ενός Λ.Σ.:– Παροχή διευκολύνσεων στη χρήση του Η/Υ.– Πιο αποδοτική χρήση των διαθέσιμων πόρων (resources) τουσυστήματος.

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

– Δυνατότητα διόρθωσης υπαρχόντων λαθών.

Page 4: Leitourgika sistimata 2

4

Η θέση του Λ.Σ. στον Η/Υ

Page 5: Leitourgika sistimata 2

5

Υπηρεσίες που παρέχονται από τοΛ.Σ. — 1

• Ανάπτυξη προγραμμάτων.– Όπως κειμενογράφοι (editors) και απασφαλματωτές (debuggers)που αν και δεν είναι μέρος ενός Λ.Σ. συνήθως παρέχονται μαζίμε αυτό ως χρήσιμα προγράμματα (utilities).

• Εκτέλεση προγραμμάτων.– Χρονοδρομολόγηση (scheduling) των ενεργειών που απαιτούνταιγια την εκτέλεση ενός προγράμματος (π.χ. φόρτωμα κώδικα καιδεδομένων στην κύρια μνήμη, άνοιγμα αρχείων, κλπ.).

• Πρόσβαση σε συσκευές Εισόδου/Εξόδου.– Κάθε συσκευή έχει διαφορετική διασύνδεση με το σύστημα, εκτελώντας το δικό της σετ εντολών.

– Το Λ.Σ. παρέχει μια τυποποιημένη διασύνδεση στους χρήστες, έτσι ώστε με απλές γενικευμένες εντολές να μπορούν αυτοί ναελέγχουν τις συσκευές.

Page 6: Leitourgika sistimata 2

6

Υπηρεσίες που παρέχονται από τοΛ.Σ. — 2

• Ελεγχόμενη πρόσβαση σε αρχεία.– Πρόσβαση σε διαφορετικού είδους δεδομέναμέσω μίας κοινής διασύνδεσης με τουςχρήστες.

– Παροχή ασφάλειας σε συστήματα Η/Υ μεπολλούς χρήστες με ελεγχόμενη πρόσβασηστις πληροφορίες των χρηστών.

• Πρόσβαση στον Η/Υ.– Ελεγχόμενη πρόσβαση στο σύστημα και τουςδιαθέσιμους πόρους.

Page 7: Leitourgika sistimata 2

7

Υπηρεσίες που παρέχονται από τοΛ.Σ. — 3

• Ανίχνευση σφαλμάτων και αντιμετώπισή τους.– Εσωτερικά και εξωτερικά σφάλματα υλικού (π.χ. βλάβη σεσυσκευή).

– Σφάλματα λογισμικού (π.χ. διαίρεση με το 0 ή προσπάθειαπρόσβασης σε απαγορευμένη περιοχή στη μνήμη).

– Αδυναμία του Λ.Σ. να ικανοποιήσει κάποια ανάγκη μιαςεφαρμογής.

– Σε αυτές τις περιπτώσεις το Λ.Σ. πρέπει να αντιμετωπίσει τοπρόβλημα που δημιουργείται με τρόπο που κατά το δυνατόν ναμην επηρεάζει αρνητικά τη λειτουργία του συστήματος (π.χ. τερματισμός του προγράμματος ή επανάληψη της ενέργειας πουδημιούργησε το πρόβλημα).

Page 8: Leitourgika sistimata 2

8

Υπηρεσίες που παρέχονται από τοΛ.Σ. — 4

• Στατιστική χρήση του συστήματος.– Συλλογή στατιστικών στοιχείων αναφορικά μετη χρήση του συστήματος από τους χρήστες.

– Παρακολούθηση της απόδοσης τουσυστήματος.

– Η χρησιμότητα των ανωτέρω έγκειται στησυνεχή προσαρμογή του συστήματος έτσιώστε να είναι όσο γίνεται πιο αποδοτικό καιστη χρέωση των χρηστών του (όπου αυτόισχύει).

Page 9: Leitourgika sistimata 2

9

Ο (διπλός) ρόλος ενός Λ.Σ.

• Ως μία εκτεταμένη (extended) ή ιδεατή(virtual) μηχανή που παρέχει μίαδιασύνδεση μεταξύ χρήστη και Η/Υ.

• Ως διαχειριστής των πόρων τουσυστήματος (resource manager).

Page 10: Leitourgika sistimata 2

10

Το Λ.Σ. ως λογισμικό

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

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

Page 11: Leitourgika sistimata 2

11

Το Λ.Σ. ως διαχειριστής των πόρωντου συστήματος

Page 12: Leitourgika sistimata 2

12

Ιστορία και εξέλιξη των Λ.Σ.

• Τα Λ.Σ. εξελίσσονται με τον χρόνο.– Αναβάθμιση συσκευών και χρήση νέωνσυσκευών.

– Νέες υπηρεσίες.– Διορθώσεις.

Page 13: Leitourgika sistimata 2

13

Περιεχόμενα

– Στόχοι και λειτουργίες του Λ.Σ.–Η εξέλιξη των Λ.Σ.– Κύρια επιτεύγματα.– Εξελίξεις που οδήγησαν στα μοντέρνα Λ.Σ.– Microsoft Windows.– Συστήματα UNIX.– Linux.

Page 14: Leitourgika sistimata 2

14

Η εξέλιξη των Λ.Σ.

• Η εξέταση των διαφόρων σταδίων εξέλιξης των Λ.Σ. βοηθάει στην κατανόηση των βασικών χαρακτηριστικώντους και στην ανάγκη που οδήγησε στην ανάπτυξή τους.

• Τα στάδια αυτά συμπεριλαμβάνουν τα ακόλουθα:– Σειριακή επεξεργασία (serial processing).– Συστήματα σειριακής επεξεργασίας δέσμης (simple batch

systems).– Συστήματα πολυπρογραμματισμού σειριακής επεξεργασίαςδέσμης (multiprogrammed batch systems).

– Συστήματα καταμερισμού χρόνου (time sharing systems).

• Η εξέλιξη των Λ.Σ. είναι σε μεγάλο βαθμό συνυφασμένημε αυτήν των Η/Υ και μπορεί να χωρισθεί σε 4 γενεές.

Page 15: Leitourgika sistimata 2

15

1η Γενεά (1945—1955): Χαρακτηριστικά

• Ο Η/Υ αποτελείται από λυχνίες κενού και κάρτες καλωδιακώνσυνδέσεων.

• Ουσιαστικά δεν υπάρχει Λ.Σ.• Το «πρόγραμμα» αποτελείται από κάρτες καλωδιακών συνδέσεων

(plugboards) που «έτρεχαν» στον Η/Υ (αν και όταν κάποιες από τιςπερίπου 20.000 λυχνίες κενού δεν ήταν καμένες).

• Προς τις αρχές του ’50 γίνεται «αναβάθμιση» με τη χρήση διάτρητωνκαρτών (punched cards) αντί για κάρτες καλωδιακών συνδέσεων .

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

Page 16: Leitourgika sistimata 2

16

• Χρονοδρομολόγηση– Συνήθως ο Η/Υ δεσμεύεται από τους χρήστες σε χρονικά διαστήματα

της 0.5 ώρας.– Ένας χρήστης δεσμεύει το σύστημα για μισή ώρα αλλά το χρησιμοποιεί

μόνο 20 λεπτά. Κατ’ επέκταση το σύστημα είναι ανενεργό για 10 λεπτά.– Ο χρήστης δεν καταφέρνει να τελειώσει σε μισή ώρα και αναγκάζεται να

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

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

– Αν συμβεί κάποιο σφάλμα, ο άτυχος χρήστης πρέπει να ξεκινήσει πάλίαπό την αρχή.

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

1η Γενεά (1945—1955): Προβλήματα

Page 17: Leitourgika sistimata 2

17

2η Γενεά (1955—1965): Χαρακτηριστικά

• Ο Η/Υ αποτελείται από κρυσταλλοτριόδους (transistors) που είναιπιο αξιόπιστα από τις λυχνίες. Αυτό έχει θετικό αντίκτυπο και στηνανάπτυξη του λογισμικού.

• Αναπτύσσεται η έννοια της εργασίας (job), αποτελούμενης από έναή περισσότερα προγράμματα γραμμένα σε κάποια γλώσσαπρογραμματισμού μαζί με τα δεδομένα τους. Κάθε εργασίαδιαβάζεται από τον Η/Υ με χρήση διάτρητων καρτών.

• Δημιουργείται η έννοια της σειριακής επεξεργασίας (serial processing): μόλις τελειώνει η εκτέλεση μίας εργασίας αρχίζειαμέσως να εκτελείται η επόμενη.

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

Page 18: Leitourgika sistimata 2

18

Παρακολουθητής

• Η σειριακή επεξεργασία και η εκτέλεση ενόςπρογράμματος μετά το άλλο, γίνεται δυνατή μετη χρήση ενός λογισμικού που λέγεταιπαρακολουθητής (monitor), μέρος του οποίουβρίσκεται πάντα στη μνήμη.

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

• Τα αποτελέσματα της εκτέλεσης της κάθεεργασίας στέλνονται σε κάποια συσκευήεξόδου για να τα παραλάβει ο χρήστης.

Page 19: Leitourgika sistimata 2

19

Γλώσσες Ελέγχου Εργασιών

• Οι γλώσσες ελέγχου εργασιών (job control languages)παρέχουν στον παρακολουθητή σημαντικές οδηγίες γιατην εκτέλεση της κάθε εργασίας, όπως:– Ποιον μεταφραστή να χρησιμοποιήσει.– Ποια δεδομένα να χρησιμοποιήσει.

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

Page 20: Leitourgika sistimata 2

20

Επιπτώσεις από τη χρήση τουπαρακολουθητή

• Το προαναφερθέν μοντέλο εκτέλεσης εργασιών, για ναλειτουργήσει σωστά, πρέπει να υποστηρίζει ταακόλουθα:– Προστασία μνήμης: Ο χώρος της μνήμης που χρησιμοποιείταιαπό τον παρακολουθητή δεν πρέπει να είναι προσπελάσιμοςστο πρόγραμμα του χρήστη που εκτελείται.

– Χρονικό μετρητή: Ένα πρόγραμμα χρήστη δεν πρέπει ναεκτελείται επ’ αόριστον.

– Προνομιούχες εντολές (privileged instructions): Όταν έναπρόγραμμα χρήστη ζητήσει την εκτέλεση μίας τέτοιας εντολής, τότε ο έλεγχος πρέπει να επιστρέψει (πιθανόν προσωρινά) στονπαρακολουθητή (π.χ. εντολές εισόδου/εξόδου).

– Διακόπτες (interrupts). Επιτρέπει την πιο εύκολη και αποδοτικήμετάπτωση ελέγχου μεταξύ του παρακολουθητή και τουεκτελούμενου προγράμματος.

Page 21: Leitourgika sistimata 2

21

Τρόποι λειτουργίας ενός Η/Υ

• Σε κατάσταση χρήστη (user mode), όπου το πρόγραμμαεκτελείται στο χώρο μνήμης του χρήστη και η υπόλοιπημνήμη δεν είναι προσπελάσιμη σε αυτό. Επιπλέον, κάποιες εντολές δεν μπορούν να εκτελεσθούν.

• Σε κατάσταση πυρήνα (kernel mode), όπου εκτελείται οπαρακολουθητής ο οποίος έχει πρόσβαση σε όλη τηδιαθέσιμη μνήμη του συστήματος και μπορεί ναεκτελέσει οποιαδήποτε εντολή.

• Για όλα τα ανωτέρω, ο παρακολουθητής θεωρείται οπροπομπός του Λ.Σ., όπως το αντιλαμβανόμαστεσήμερα.

Page 22: Leitourgika sistimata 2

22

2η Γενεά (1955—1965): Προβλήματα

• Ακόμα και με την εισαγωγή του παρακολουθητή και της σειριακήςεπεξεργασίας, η ΚΜΕ, η πιο σημαντική μονάδα ενός Η/Υ, υποχρησιμοποιείται σε απαράδεκτα χαμηλό ρυθμό.

• Το πρόβλημα βρίσκεται στο ότι οι συσκευές Ε/Ε είναι κατά κανόναπολύ πιο αργές από την ΚΜΕ. Π.χ.

Διάβασμα μίας εγγραφής από κάποιο αρχείο: 15 μsΕκτέλεση 100 εντολών: 1 μsΓράψιμο μίας εγγραφής πίσω στο αρχείο: 15 μs

Σύνολο χρόνου: 31 μs

Ποσοστιαία χρήση ΚΜΕ: 1/31 = 0,032 = 3,2%

Page 23: Leitourgika sistimata 2

23

3η Γενεά (1965—1980): Χαρακτηριστικά

• Ο Η/Υ αποτελείται από ολοκληρωμένα κυκλώματα (large scale integration), που βελτιώνουν την ταχύτητα και αυξάνουν τηχωρητικότητα μνήμης σε έναν Η/Υ.

• Αναπτύσσονται νέες τεχνικές, όπως:– Πολυπρογραμματισμός (multiprogramming): Η ταυτόχρονη ύπαρξη

στην μνήμη περισσοτέρων της μίας εργασίας και η εναλλακτικήεκτέλεσή τους στην ΚΜΕ.

– Χρονοδρομολόγηση (scheduling): Πολιτικές με βάση τις οποίεςκαθορίζεται με ποια σειρά και για πόσο χρονικό διάστημα θα εκτελείταιη κάθε εργασία.

– Διαχείριση μνήμης (memory management): Πολιτικές με βάση τις οποίεςκαθορίζεται πως θα μοιρασθεί η υπάρχουσα μνήμη στις εργασίες πουείναι φορτωμένες στο σύστημα.

– Καταμερισμός χρόνου (time sharing): Η υποστήριξη ταυτόχρονηςσύνδεσης σε ένα Η/Υ από πολλούς χρήστες μέσω τερματικώνσταθμών.

Page 24: Leitourgika sistimata 2

24

Μονοπρογραμματισμός

• Στον μονοπρογραμματισμό (uniprogramming), ηΚΜΕ μόλις συναντήσει μία εντολή Ε/Ε είναιυποχρεωμένη να περιμένει σε ανενεργήκατάσταση μέχρις ότου ολοκληρώσει τηνεκτέλεσή της αυτή η εντολή, για να συνεχίσει τηνεκτέλεση των επόμενων (υπολογιστικών) εντολών του προγράμματος.

Page 25: Leitourgika sistimata 2

25

Πολυπρογραμματισμός — 1

• Αν όμως στη μνήμη υπήρχαν 2 προγράμματα, η ΚΜΕ θα ήταν ανενεργήγια μικρότερο χρονικό διάστημα.

Page 26: Leitourgika sistimata 2

26

Πολυπρογραμματισμός — 2

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

Page 27: Leitourgika sistimata 2

27

Παράδειγμα

Page 28: Leitourgika sistimata 2

28

Ιστόγραμμα χρήσης του Η/Υ

Page 29: Leitourgika sistimata 2

29

Συστήματα Καταμερισμού Χρόνου

• Σε πολλές περιπτώσεις, ο χρήστης πρέπεινα έχει άμεση και διαλογική (interactive)πρόσβαση στο σύστημα.

• Σε αυτές τις περιπτώσεις οι χρήστεςχρησιμοποιούν το σύστημα μέσω τηςχρήσης τερματικών σταθμών.

• Η ΚΜΕ πρέπει να διαμοιράζει το χρόνοτης, εξυπηρετώντας ταυτόχρονα τιςανάγκες όλων των χρηστών.

Page 30: Leitourgika sistimata 2

30

Σειριακή Επεξεργασία Δέσμηςvs. Καταμερισμός Χρόνου

Page 31: Leitourgika sistimata 2

31

Το πρώτο παράδειγμα Λ.Σ. καταμερισμού χρόνου: CTSS

• Compatible Time-Sharing System (CTSS) – Αναπτύχθηκε στο MIT στα πλαίσια του προγράμματος MAC.

• Το σύστημα είχε 32.000 λέξεις μνήμης, από τις οποίες οπαρακολουθητής χρησιμοποιούσε τις 5.000.

• Ένα πρόγραμμα φορτωνόταν στη μνήμη ξεκινώντας πάντα από τηθέση 5,000.

• Κάθε 0,2 δευτερόλεπτα ένας διακόπτης μετέφερε τον έλεγχο τουσυστήματος στον παρακολουθητή ο οποίος είχε τη δυνατότητα ναδώσει την ΚΜΕ σε ένα άλλο πρόγραμμα για να εκτελεσθεί.

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

Page 32: Leitourgika sistimata 2

32

Λειτουργία CTSS

Page 33: Leitourgika sistimata 2

33

3η Γενεά (1965—1980): Προβλήματα

• Τα βασικά χαρακτηριστικά της 3ης γενιάς αποτελούν ουσιαστικά καιπροβλήματα τα οποία πρέπει να αντιμετωπισθούν.

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

• Με την ταυτόχρονη πρόσβαση στο σύστημα από πολλούς χρήστες, τα αρχεία ενός χρήστη πρέπει να προστατευθούν από μηεξουσιοδοτημένη πρόσβαση σε αυτά από άλλους χρήστες.

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

Page 34: Leitourgika sistimata 2

34

4η Γενεά (1980—τώρα): Χαρακτηριστικά

• Ο Η/Υ αποτελείται από κυκλώματα μεγάλης και πολύμεγάλης ολοκλήρωσης (LSI, VLSI) τα οποία μείωσανδραστικά το κόστος του με αποτέλεσμα την ανάπτυξηπροσωπικών Η/Υ.

• Ανάπτυξη Λ.Σ. ενός χρήστη με έμφαση στη φιλικότηταπρος τον χρήστη (π.χ. DOS, OS/2, Windows, OS X).

• Ανάπτυξη ισχυρών σταθμών εργασίας (workstations) καιδικτύων που οδήγησαν στην ανάπτυξη λειτουργικώνσυστημάτων για δίκτυα και κατανεμημένων (distributed)λειτουργικών συστημάτων.

Page 35: Leitourgika sistimata 2

35

Περιεχόμενα

– Στόχοι και λειτουργίες του Λ.Σ.– Η εξέλιξη των Λ.Σ.–Κύρια επιτεύγματα.– Εξελίξεις που οδήγησαν στα μοντέρνα Λ.Σ.– Microsoft Windows.– Συστήματα UNIX.– Linux.

Page 36: Leitourgika sistimata 2

36

Βαθμός δυσκολίας ανάπτυξης ενόςΛ.Σ.

• Το Λ.Σ. είναι ένα από τα πιο πολύπλοκα είδη λογισμικούπου αναπτύσσονται.

• Μερικά σχετικά στατιστικά στοιχεία:– Το Multics ανακοινώθηκε το 1963 και λειτούργησε το 1969.– Το OS 360 όταν πρωτοβγήκε στην αγορά είχε 1000 λάθη.– Το Windows NT υπέφερε επί 7 χρόνια με προβλήματα.– Το Windows Vista ουσιαστικά ποτέ δεν καθιερώθηκε καιαντικαταστάθηκε πολύ γρήγορα από το Windows 7.

– Ένα μικρό Λ.Σ. έχει μέγεθος 100Κ και ένα μεγάλο 10Μ γραμμώνκώδικα.

– Η δημιουργία ενός Λ.Σ. χρειάζεται μεταξύ 100-1000 ανθρωποχρόνων (man years).

Page 37: Leitourgika sistimata 2

37

Κύρια επιτεύγματα

• Η έννοια της διεργασίας (process).• Διαχείριση μνήμης.• Προστασία και ασφάλεια των πληροφοριών σε ένασύστημα.

• Χρονοδρομολόγηση.• Διαχείριση των πόρων του συστήματος.

Page 38: Leitourgika sistimata 2

38

Διεργασία

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

• Μια διεργασία μπορεί να δημιουργήσει άλλες θυγατρικέςδιεργασίες και να αναμένει (ή όχι) τον τερματισμό τουςπριν συνεχίσει τη δική της εκτέλεση.

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

Page 39: Leitourgika sistimata 2

39

Πηγές λαθών με τη χρήσηδιεργασιών

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

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

– Μη σωστή πρόσβαση από πολλές διεργασίες σε κοινούςπόρους.

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

Page 40: Leitourgika sistimata 2

40

• Μία διεργασία αποτελείται από:– Ένα εκτελέσιμο κομμάτι προγράμματος.– Τα δεδομένα που σχετίζονται με την εκτέλεσητου κώδικα της διεργασίας.

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

Συστατικά μίας διεργασίας

Page 41: Leitourgika sistimata 2

41

Διαχείριση διεργασιών

Page 42: Leitourgika sistimata 2

42

Διαχείριση μνήμης

• Το Λ.Σ. έχει 5 σημεία ευθύνης σε αυτόν τοντομέα:– Απομόνωση του χώρου μνήμης μίας διεργασίας απόαυτούς των άλλων διεργασιών.

– Αυτόματη διαμοίραση της μνήμης στις διεργασίες καιδιαχείρισή της.

– Υποστήριξη σε αρθρωτό (modular) προγραμματισμό.– Έλεγχος και προστασία κατά την πρόσβαση τωνδιεργασιών στη μνήμη του συστήματος.

– Μακρόχρονη αποθήκευση πληροφοριών.

Page 43: Leitourgika sistimata 2

43

Ιδεατή Μνήμη

• Η τεχνική της ιδεατής μνήμης (virtual memory) επιτρέπει στα προγράμματα ναβλέπουν τη μνήμη από μία λογική οπτικήγωνία, χωρίς να χρειάζεται να γνωρίζουνπόση πραγματική μνήμη είναι στην ουσίαδιαθέσιμη.

Page 44: Leitourgika sistimata 2

44

Σελιδοποίηση

• Η τεχνική της σελιδοποίησης (paging)επιτρέπει σε μία διεργασία να αποτελείταιαπό ένα αριθμό από ιδίου μεγέθουςκομμάτια που λέγονται σελίδες.

• Κάθε ιδεατή διεύθυνση μνήμης αποτελείταιαπό ένα αριθμό σελίδας και μίαμετατόπιση μέσα στη σελίδα.

• Η κάθε σελίδα μπορεί να βρίσκεταιοπουδήποτε στη μνήμη.

Page 45: Leitourgika sistimata 2

45

Παράδειγμα ιδεατής μνήμη

Page 46: Leitourgika sistimata 2

46

Διευθύνσεις μνήμης με χρήσηιδεατής μνήμης

Page 47: Leitourgika sistimata 2

47

Διαφύλαξη και προστασία τωνπληροφοριών

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

• Τα βασικά θέματα εδώ μπορούν να χωρισθούνσε 3 βασικές κατηγορίες:– Διαθεσιμότητα των πληροφοριών.– Αποφυγή πρόσβασης στις πληροφορίες και πιθανόναλλοίωσής τους από μη εξουσιοδοτημένα άτομα.

– Επιβεβαίωση της ταυτότητας και των στοιχείων τουσυστήματος.

Page 48: Leitourgika sistimata 2

48

Χρονοδρομολόγηση και διαχείρισητων πόρων

• Όσον το δυνατόν πιο αποτελεσματική διαχείριση τωνπόρων του συστήματος με βάση τα εξής κριτήρια:– Δικαιοσύνη, δηλαδή όλες οι διεργασίες κάποια στιγμή ναεξυπηρετηθούν.

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

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

Page 49: Leitourgika sistimata 2

49

Βασικά στοιχεία ενός Λ.Σ.

Page 50: Leitourgika sistimata 2

50

Στρωματοποιημένα Λ.Σ.

• Το Λ.Σ. αποτελείται από μία ιεραρχία επιπέδων, το καθένα από ταοποία επικοινωνεί κατ’ εξοχήν μόνο με το αμέσως προηγούμενο καιεπόμενο.

• Το κάθε επίπεδο εκτελεί μόνο ένα υποσύνολο των λειτουργιών ενόςΛ.Σ.

• Το κάθε επίπεδο βασίζεται στο αμέσως επόμενο για την εκτέλεσηπιο στοιχειωδών εντολών.

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

• Ο αριθμός των επιπέδων μπορεί να ποικίλει από ένα Λ.Σ. σε άλλοαλλά οι Denning και Brown περιγράφουν μία γενικευμένη δομή πουαποτελείται από 13 επίπεδα.

Page 51: Leitourgika sistimata 2

51

Ιεραρχία επιπέδων ενός Λ.Σ.

Page 52: Leitourgika sistimata 2

Περιοχές ευθύνης του Λ.Σ.

• Διαχείριση διεργασιών• Διαχείριση κύριας μνήμης• Διαχείριση περιφερειακής μνήμης• Διαχείριση συσκευών Ε/Ε• Τα ανωτέρω αποτελούν επίσης τις βασικέςενότητες ενός μαθήματος εισαγωγής σεΛ.Σ.

Page 53: Leitourgika sistimata 2

53

Περιεχόμενα

– Στόχοι και λειτουργίες του Λ.Σ.– Η εξέλιξη των Λ.Σ.– Κύρια επιτεύγματα.–Εξελίξεις που οδήγησαν στα μοντέρναΛ.Σ.

– Microsoft Windows.– Συστήματα UNIX.– Linux.

Page 54: Leitourgika sistimata 2

54

Διαφορετικές αρχιτεκτονικέςπροσεγγίσεις

• Αυτές περιλαμβάνουν τις ακόλουθες:– Μικροπυρήνες (microkernel).– Πολυνημάτωση (multithreading).– Συμμετρική πολυεπεξεργασία (symmetric

multiprocessing).– Κατανεμημένα Λ.Σ.– Αντικειμενοστρεφής σχεδιασμός.

Page 55: Leitourgika sistimata 2

55

Αρχιτεκτονικές Μικροπυρήνα

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

• Με τη χρήση μικροπυρήνα μόνο μερικές βασικές λειτουργίεςβρίσκονται σε αυτόν:– Χώρος διευθύνσεων.– Επικοινωνία μεταξύ των διεργασιών.– Βασικοί μηχανισμοί χρονοδρομολόγησης.

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

• Με αυτόν τον τρόπο τα Λ.Σ. καθίστανται πιο ευέλικτα και ηυλοποίησή τους είναι πιο εύκολη.

Page 56: Leitourgika sistimata 2

56

Πολυνημάτωση

• Μια διεργασία διαιρείται σε υποδιεργασίες οι οποίες εκτελούνταιταυτόχρονα.

• Η υποδιεργασία:– Είναι μία σχετικά μικρή και αυτόνομη εκτελούμενη οντότητα με το δικό

της περιβάλλον (καταχωρητές, στοίβες, μνήμη, κλπ.).– Εκτελείται σειριακά αλλά η εκτέλεσή της μπορεί να ανασταλεί αν η ΚΜΕ

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

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

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

Page 57: Leitourgika sistimata 2

57

Συμμετρική Πολυεπεξεργασία

• Ένα τέτοιο σύστημα αποτελείται απόπολλούς επεξεργαστές οι οποίοιδιαμοιράζονται την ίδια μνήμη και μονάδεςΕ/Ε και εκτελούν τις ίδιες λειτουργίες (γι’αυτό και ο όρος συμμετρική).

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

Page 58: Leitourgika sistimata 2

58

Πλεονεκτήματα της συμμετρικήςπολυεπεξεργασίας

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

• Αν προκύψει πρόβλημα με κάποιους από τουςεπεξεργαστές, το σύστημα είναι σε θέση να συνεχίσει ναλειτουργεί με τους υπόλοιπους.

• Το σύστημα μπορεί να επεκταθεί εύκολα μεεπιπρόσθετους επεξεργαστές.

• Τα συστήματα αυτά είναι κλιμακωτά και υπάρχουνδιάφορα μοντέλα σε σχέση με απόδοση ή κόστος.

Page 59: Leitourgika sistimata 2

59

Πολυπρογραμματισμός vs. Πολυεπεξεργασία

Επίδοση

Διαθεσιμότητα

Στοιχειώδης Ανάπτυξη

Ιεράρχιση

Page 60: Leitourgika sistimata 2

60

Κατανεμημένα Λ.Σ.

• Παρέχουν την ψευδαίσθηση ότι υπάρχειένα κοινός χώρος μνήμης (κύριας ήπεριφερειακής), παρόλο που σε φυσικόεπίπεδο η μνήμη είναι κατανεμημένημεταξύ διαφορετικών Η/Υ.

• Το ίδιο συμβαίνει και με άλλες οντότητεςστο σύστημα, όπως τα αρχεία, συσκευές, κλπ.

• Βρίσκονται ακόμα σε σχετικά πρώιμοστάδιο ανάπτυξης.

Page 61: Leitourgika sistimata 2

61

Αντικειμενοστραφής σχεδιασμός

• Επιτρέπει την αρθρωτή υλοποίηση τωνεπί μέρους συστατικών τμημάτων ενόςΛ.Σ. και βοηθάει στην ανάπτυξηκατανεμημένων εργαλείων και Λ.Σ.

Page 62: Leitourgika sistimata 2

62

Περιεχόμενα

– Στόχοι και λειτουργίες του Λ.Σ.– Η εξέλιξη των Λ.Σ.– Κύρια επιτεύγματα.– Εξελίξεις που οδήγησαν στα μοντέρνα Λ.Σ.– Microsoft Windows.– Συστήματα UNIX.– Linux.

Page 63: Leitourgika sistimata 2

63

Πολυδιεργασία (multitasking) ενόςχρήστη

• Από τα Windows 2000 και μετά, τα Windowsαναπτύχθηκαν για να μπορούν ναεκμεταλλεύονται τις μοντέρνες αρχιτεκτονικέςΗ/Υ που χρησιμοποιούν 32-bit και 64-bitεπεξεργαστές.

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

Page 64: Leitourgika sistimata 2

64

Αρχιτεκτονική των Windows

Page 65: Leitourgika sistimata 2

65

Το μοντέλο της Πελατειακής Δομής(Client/Server)

• Τα Windows χρησιμοποιούν το μοντέλο της πελατειακήςδομής για την υλοποίηση των υπηρεσιών πουπροσφέρουν.

• Οι υπηρεσίες σε επίπεδο χρήστη υλοποιούνται ωςδιεργασίες που επικοινωνούν μεταξύ τους με τοπρωτόκολλο RPC.

• Όταν μία εφαρμογή (client) χρειάζεται μία υπηρεσία, έναμήνυμα στέλνεται μέσω του Executive σε κάποιονεξυπηρετητή (server) ο οποίος εκτελεί τις απαραίτητεςεργασίες και επιστρέφει το ζητούμενο αποτέλεσμα στηνεφαρμογή, πάλι μέσω του Executive .

Page 66: Leitourgika sistimata 2

66

Αντικειμενοστρεφής σχεδιασμόςτων Windows

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

Page 67: Leitourgika sistimata 2

67

Περιεχόμενα

– Στόχοι και λειτουργίες του Λ.Σ.– Η εξέλιξη των Λ.Σ.– Κύρια επιτεύγματα.– Εξελίξεις που οδήγησαν στα μοντέρνα Λ.Σ.– Microsoft Windows.–Συστήματα UNIX.– Linux.

Page 68: Leitourgika sistimata 2

68

Το μοντέλο του UNIX

Page 69: Leitourgika sistimata 2

69

Παραδοσιακός μικροπυρήνας UNIX

Page 70: Leitourgika sistimata 2

70

System V Release 4 (SVR4)

ΑΤ&Τ, Sun Microsystems

RealTime processing supportProcess scheduling classesDynamically allocated data structuresVirtual Memory managementVirtual file systemPreemptive kernel

Page 71: Leitourgika sistimata 2

Unix (Εξέλιξη)

Page 72: Leitourgika sistimata 2

72

Περιεχόμενα

– Στόχοι και λειτουργίες του Λ.Σ.– Η εξέλιξη των Λ.Σ.– Κύρια επιτεύγματα.– Εξελίξεις που οδήγησαν στα μοντέρνα Λ.Σ.– Microsoft Windows.– Συστήματα UNIX.– Linux.

Page 73: Leitourgika sistimata 2

73

Αρθρωτός μονολιθικός πυρήνας

• Αν και μονολιθικός, ο πυρήνας είναισχεδιασμένος ως μία ομάδα από αρθρωτάπρογράμματα (modules).

• Στην ουσία, κάθε τέτοιο πρόγραμμα είναιανεξάρτητο από τα άλλα και μπορεί νασυνενωθεί με άλλα παρόμοια προγράμματαδυναμικά κατά την εκτέλεση των εφαρμογών.

• Επίσης, τα προγράμματα αυτά μπορούν ναφορτωθούν στον πυρήνα δυναμικά ή νααπομακρυνθούν από αυτόν.

Page 74: Leitourgika sistimata 2

74

Τα αρθρωτά προγράμματα τουπυρήνα του Linux

Page 75: Leitourgika sistimata 2

75

Τα συστατικά του πυρήνα τουLinux