Download - Βασικές Έννοιες Λειτουργικών Συστημάτων

Transcript
Page 1: Βασικές Έννοιες Λειτουργικών Συστημάτων

Εισαγωγή

Page 2: Βασικές Έννοιες Λειτουργικών Συστημάτων

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

Silberschatz, Galvin and Gagne, “Operating Systems Concepts”, 6th Edition.

Οι διαφάνειες αυτές βρίσκονται στο δικτυακό τόπο:

http://www.cs.purdue.edu/homes/yau/cs503/

Page 3: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 3ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Εισαγωγή

— Τι είναι ένα Λειτουργικό Σύστηµα (ΛΣ);— Μεγάλα Υπολογιστικά Συστήµατα (Mainframe Systems)— Επιτραπέζια Συστήµατα (Desktop Systems)— Συστήµατα Πολλών Επεξεργαστών (Multiprocessor Systems)— Κατανεµηµένα Συστήµατα (Distributed Systems)— Συστήµατα ∆έσµης (Clustered Systems)— Συστήµατα Πραγµατικού Χρόνου (Real -Time Systems)— Συστήµατα Χειρός (Handheld Systems)— Υπολογιστικά Περιβάλλοντα (Computing Environments)

Page 4: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 4ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Τι είναι ένα Λειτουργικό Σύστηµα(ΛΣ)

— Ένα πρόγραµµα που λειτουργεί ως ενδιάµεσος µεταξύτων χρηστών των Υπολογιστικών Συστηµάτων και τουυλικού του Υπολογιστικού Συστήµατος (ΥΣ)

— Στόχοι ενός ΛΣ:Εκτέλεση προγραµµάτων χρηστώνΕυκολία χρήσης του ΥΣΧρήση του υλικού και των περιφερειακών του ΥΣ µεαποτελεσµατικό / αποδοτικό τρόποΠροστασία των προγραµµάτων και δεδοµένων των διαφόρωνχρηστών του ΥΣ

Page 5: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 5ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Στοιχεία ΥπολογιστικώνΣυστηµάτων

1. Υλικό (Hardware) – παρέχει τους βασικούς υπολογιστικούς πόρους(επεξεργαστής, µνήµη, συσκευές εισόδου/εξόδου (I/O devices)).

2. Λειτουργικό σύστηµα – ελέγχει και συντονίζει τη χρήση του υλικούµεταξύ των διαφόρων προγραµµάτων εφαρµογών των διαφόρωνχρηστών

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

4. Χρήστες (άνθρωποι, µηχανήµατα, άλλοι υπολογιστές)

Page 6: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 6ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Υλικό ενός Τυπικού ΥΣ

Page 7: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 7ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Απόπειρες Ορισµού ΛΣ

— Το ΛΣ ως εκτεταµένη µηχανή (extended ή virtual machine). Το πρόγραµµα που κρύβει από το χρήστη / προγραµµατιστή την αλήθεια για το υλικό

Παράδειγµα 1: η παρουσίαση µιας απλής και εύχρηστηςαπεικόνισης από ονόµατα και λειτουργίες χειρισµού αρχείων καικαταλόγων

Παράδειγµα 2: Παρουσίαση της µνήµης στα προγράµµατα τωνχρηστών, διαχείριση διακοπών (interrupt handling)

Page 8: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 8ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Απόπειρες Ορισµού ΛΣ (συνέχεια)

— Το ΛΣ ως διαχειριστής της ανάθεσης πόρων(resource allocation). Το πρόγραµµα που αναλαµβάνεινα µοιράσει τους πόρους τους συστήµατος ανάµεσα στιςδιάφορες εφαρµογές

Παράδειγµα 1: H χρήση κοινών εκτυπωτών, όπου θα πρέπει τοΛΣ να παρέχει έναν τρόπο για την ορθή και µε συγκεκριµένησειρά εκτύπωση των δεδοµένων όλων των χρηστών, πουχρησιµοποιούν ταυτόχρονα τον εκτυπωτή

Παράδειγµα 2: ∆ιαχείριση και προστασία της µνήµης, ιδιαίτερασε συστήµατα που εξυπηρετούν ταυτόχρονα πολλούς χρήστες

Page 9: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 9ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Απόπειρες Ορισµού ΛΣ (συνέχεια)

— Top down view: Προσεγγίζοντας το ΛΣ από τη κορυφή (χρήστης) προς τη βάση (υλικό ΥΣ), ο ρόλος του είναι να παρέχει σταπρογράµµατα εύκολη και αποδοτική επικοινωνία µε τους διάφορουςπόρους του ΥΣ

— Bottom up view: Προσεγγίζοντας το ΛΣ από τη βάση προς τηνκορυφή, «µέριµνα του ΛΣ, είναι να παρέχει µια συστηµατοποιηµένηκαι ελεγχόµενη κατανοµή των επεξεργαστών, των µνηµών, και τωνάλλων συσκευών εισόδου / εξόδου, ανάµεσα στα διάφοραπρογράµµατα-πελάτες που ανταγωνίζονται µεταξύ τους για να ταχρησιµοποιήσουν» (Tanenbaum, 2001)

Page 10: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 10ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Θεώρηση των Στοιχείων ενός ΥΣ

Page 11: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 11ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Τελικά...

— ∆ιαχείριση της ανάθεσης πόρων (resource allocator)

— Πρόγραµµα ελέγχου – ελέγχει την εκτέλεση τωνπρογραµµάτων χρηστών και τη λειτουργία τωνσυσκευών εισόδου / εξόδου

— Πυρήνας (Kernel) – το µόνο πρόγραµµα που τρέχεισυνέχεια, όσο βρίσκεται σε λειτουργία το ΥΣ (όλα ταυπόλοιπα θεωρούνται επιπρόσθετες υπηρεσίες καιπρογράµµατα εφαρµογών)

Page 12: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 12ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Λειτουργικά Συστήµατα καιΑρχιτεκτονική ΥπολογιστικώνΣυστηµάτων

— Τα ΛΣ έχουν µια σχέση «εξάρτησης» µε τηναρχιτεκτονική των ΥΣ στα οποία εκτελούνται

— Οι εξελίξεις στο υλικό των ΥΣ έκανε δυνατή την παροχήεπιπλέον λειτουργιών προς τα προγράµµατα τωνχρηστών. Οι λειτουργίες αυτές υλοποιούνταν µε τηνανακάλυψη και την εξέλιξη των ΛΣ

— Είναι ένας καλός τρόπος να κατανοήσουµε τις εξελίξειςστα ΛΣ, αν παρακολουθήσουµε τις εξελίξεις στηναρχιτεκτονική που τις «επέτρεψαν»

Page 13: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 13ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Μεγάλα Υπολογιστικά Συστήµατα

— Μείωση του χρόνου εκκίνησης µε την οµαδοποίησηπαρόµοιων εργασιών (batching of similar jobs)

— Αυτοµατοποίηση της εναλλαγής µεταξύ των εργασιών –αυτόµατη µεταφορά ελέγχου µεταξύ εργασιών (πρώτοστοιχειώδες ΛΣ)

— Μόνιµο (στη µνήµη) πρόγραµµα ελέγχου (resident monitor):

Αρχικά, ο έλεγχος στο πρόγραµµα ελέγχουΜεταφορά του ελέγχου στην εργασίαΜε την ολοκλήρωση της εργασίας, µεταφορά του ελέγχου στοπρόγραµµα ελέγχου

Page 14: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 14ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Σειριακή Εκτέλεση καιΠαροχέτευση (Spooling)

— Οι εργασίες προς εκτέλεση φορτώνονται σε δευτερεύουσα µνήµη(στις αρχές των ΗΥ, κάθε εργασία γραφόταν σε χάρτινες κάρτες, οιοποίες µε την σειρά τους διαβάζονταν από ειδικά µηχανήµατα για νααποθηκευτούν στον δίσκο/ταινία του ΥΣ)

— Το σύστηµα επιλέγει µια από τις αποθηκευµένες εργασίες, τηνµεταφέρει από την δευτερεύουσα στην πρωτεύουσα µνήµη καιαρχίζει την εκτέλεσή της

— Μόλις τελειώνει η εκτέλεση της τρέχουσας εργασίας, το ΛΣ φορτώνειτην επόµενη εργασία

— Κάθε χρονική στιγµή, υπάρχει µόνο µια εργασία που είναιφορτωµένη και εκτελείται από το σύστηµα

Page 15: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 15ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

∆ιάταξη µνήµης γα ένα απλόσύστηµα µαζικής επεξεργασίας(batch system)

Page 16: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 16ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

3η Γενιά ΥπολογιστικώνΣυστηµάτων: ΟλοκληρωµέναΚυκλώµατα

— Πολυπρογραµµατισµός: Είναι «ο διαµερισµός τηςµνήµης σε διάφορα τµήµατα, ώστε κάθε διαφορετικήεργασία να καταλαµβάνει διαφορετικό τµήµα»(Tanenbaum, 1993)

— Το ΛΣ µπορεί να φορτώσει περισσότερες από µιαεργασίες ταυτόχρονα στην κυρίως µνήµη του ΥΣ

— Κάθε χρονική στιγµή, υπάρχουν πολλές διεργασίες πουείναι φορτωµένες και εκτελούνται από το σύστηµα

Page 17: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 17ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΠολυπρογραµµατιστικάΣυστήµατα Μαζικής Επεξεργασίας

Page 18: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 18ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Χαρακτηριστικά που το ΛΣ πρέπεινα έχει στον πολυπρογραµµατισµό(Ι)

— ∆ιαχείριση µνήµης – το ΛΣ πρέπει να είναι σε θέση ναχωρίσει τη µνήµη σε τµήµατα (ένα για κάθε διεργασία) και να προστατεύσει το τµήµα κάθε διεργασίας από(ηθεληµένες ή αθέλητες) παρεµβολές των υπολοίπωνδιεργασιών

— ∆ιαχείριση διεργασιών – το ΛΣ πρέπει να είναι σε θέσηνα επιλέξει ποιες διεργασίες θα αποκτήσουν χώρο στηµνήµη (θεωρούµε ότι η µνήµη δεν επαρκεί για να«στεγάσει» όλες τις διεργασίες ταυτόχρονα και ότι µόνοµια διεργασία που είναι στη µνήµη µπορεί να τρέξει)

Page 19: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 19ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Χαρακτηριστικά που το ΛΣ πρέπεινα έχει στον πολυπρογραµµατισµό(ΙΙ)

— Χρονοπρογραµµατισµός της ΚΜΕ – το ΛΣ πρέπει ναεπιλέξει µεταξύ των διεργασιών που έχουν χώρο στηµνήµη κάποια για να τρέξει

— Ανάθεση πόρων µε τέτοιο τρόπο ώστε να µην«επηρεάζεται» η µια διεργασία από την εκτέλεση άλλωνδιεργασιών

Page 20: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 20ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Συστήµατα Καταµερισµού Χρόνου(Time-sharing Systems)

— Αφορά κυρίως τα συστήµατα µε τερµατικά και χρήστεςπου αλληλεπιδρούν (interactive) µε ένα ΥΣ. Η ιδέα είναινα γίνεται καταµερισµός της ΚΜΕ στις εργασίες πουπεριµένουν εξυπηρέτηση, για την προσφορά γρήγορηςεξυπηρέτησης σε έναν αριθµό από χρήστες

Page 21: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 21ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

∆ιαλογικός Υπολογισµός(Interactive Computing)

— H KME “µοιράζεται” µεταξύ διαφορετικών διεργασιώνπου κρατούνται στη µνήµη ή στο δίσκο

— Μια εργασία µεταφέρεται (swapped) µεταξύ µνήµης καιδίσκου

— Παρέχεται διαλογική επικοινωνία µεταξύ χρήστη και ΥΣ.Όταν το ΛΣ ολοκληρώσει την εκτέλεση µιας εντολής, ψάχνει την επόµενη προς εκτέλεση εντολή από τοπληκτρολόγιο

— Τα διαλογικά συστήµατα πρέπει να έχουν διαθέσιµα γιαπρόσβαση τόσο τον κώδικα των εφαρµογών όσο και ταδεδοµένα (file systems)

Page 22: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 22ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Επιτραπέζια ΥΣ (Desktop Systems)

— Προσωπικοί Υπολογιστές – υπολογιστικά συστήµατααφιερωµένα σε ένα χρήστη

— Συσκευές I/O – πληκτρολόγια, ποντίκια, οθόνες, εκτυπωτές

— ∆ιευκόλυνση των χρηστών και αυξηµένη απόκριση στααιτήµατά τους για εξυπηρέτηση

— Μπορεί να υιοθετήσει τεχνολογία που προορίζεται γιαµεγαλύτερα ΥΣ, αλλά το γεγονός ότι απευθύνονται σεένα χρήστη τα κάνει πιο απλά

— Συνήθως τρέχουν πολλούς διαφορετικούς τύπους ΛΣ(Windows, MacOS, Linux)

Page 23: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 23ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

MS-DOS: Μια “Πραγµατική”Εργασία

Κατά την εκκίνηση του συστήµατος Εκτέλεση ενός προγράµµατος

Page 24: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 24ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Unix: Ταυτόχρονη εκτέλεσηεργασιών

Page 25: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 25ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Παράλληλα Συστήµατα

— Συστήµατα πολλών επεξεργαστών µε περισσότερες της µιας ΚΜΕσε στενή επικοινωνία

— Ισχυρά συζευγµένα συστήµατα (Tightly coupled systems) – οιεπεξεργαστές µοιράζονται δίαυλο, ρολόι και µνήµη (επικοινωνία)

— Πλεονεκτήµατα των παράλληλων συστηµάτων:

Αυξηµένη απόδοση (όταν επιτυγχάνεται παράλληλη εκτέλεσηκώδικα από τις διάφορες ΚΜΕ)Οικονοµία κλίµακας (αναλογικά µικρότερο κόστος ανά ΚΜΕ σεσχέση µε πολλούς ξεχωριστούς ΗΥ) Αυξηµένη αξιοπιστία (αντοχή σε λάθη και οµαλή πτώσηαπόδοσης όταν χάνονται διάφοροι πόροι του ΥΣ)

Page 26: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 26ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Παράλληλα Συστήµατα (συνέχεια)

— Συµµετρική πολυεπεξεργασία – (Symmetric multiprocessing (SMP))

Κάθε επεξεργαστής τρέχει ένα πανοµοιότυπο αντίγραφο του ΛΣΠολλές εργασίες µπορούν να τρέχουν ταυτόχρονα χωρίςχειροτέρευση της απόδοσηςΤα περισσότερα σύγχρονα ΛΣ υποστηρίζουν SMP

— Ασύµµετρη πολυεπεξεργασία (Asymmetric multiprocessing)

Κάθε επεξεργαστής αναλαµβάνει συγκεκριµένη εργασία, ενώ οκύριος επεξεργαστής αναθέτει εργασίες στους υπόλοιπουςΠερισσότερο συνηθισµένο σε πολύ µεγάλα ΥΣ

Page 27: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 27ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Αρχιτεκτονική ΣυµµετρικήςΠολυεπεξεργασίας

Page 28: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 28ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Συστήµατα Πραγµατικού Χρόνου(Real-Time Systems)

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

— Σαφώς προσδιορισµένοι και σταθεροί χρονικοίπεριορισµοί

— Τα συστήµατα πραγµατικού χρόνου µπορεί να είναι είτεαυστηρά (hard - δεν επιτρέπεται η παραµικρή απόκλισηαπό το πλάνο εκτέλεσης) είτε χαλαρά (soft -επιτρέπονται µικρές καθυστερήσεις στην απόκριση τουσυστήµατος)

Page 29: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 29ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Συστήµατα Πραγµατικού Χρόνου(συνέχεια)

— Αυστηρά συστήµατα πραγµατικού χρόνου:Περιορισµένη ή απούσα δευτερεύουσα αποθήκευσης, ταδεδοµένα τηρούνται σε ROM

∆εν υποστηρίζονται από τα ΛΣ γενικού σκοπού

— Χαλαρά συστήµατα πραγµατικού χρόνου:Περιορισµένη χρησιµότητα σε βιοµηχανικό έλεγχο ή ροµποτική

Χρήσιµο σε εφαρµογές (πολυµέσα, εικονική πραγµατικότητα) που απαιτούν αυξηµένα χαρακτηριστικά από το ΛΣ

Page 30: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 30ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Λειτουργικά Συστήµατα ∆ικτύου

— Υπάρχουν και άλλοι χρήστες και πόροι συνδεδεµένοι σεδίκτυο

— Μπορούν να θεωρηθούν προεκτάσεις των κλασικών ΛΣ.

— Υπάρχουν ΛΣ∆ δύο τύπων:

ΛΣ∆ ισότιµων σταθµών εργασίας (peer-to-peer NOSs)

ΛΣ∆ αφιερωµένου εξυπηρετητή (dedicated server NOSs)

Page 31: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 31ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Κατανεµηµένα ΛειτουργικάΣυστήµατα

— Κατανοµή των υπολογισµών µεταξύ διαφόρων (όχι απαραίτηταόµοιων) επεξεργαστών χωρίς κοινή µνήµη ή κοινό ρολόι

— Χαλαρά Συζευγµένα Συστήµατα (Loosely coupled systems) – κάθεΚΜΕ έχει τη δική της τοπική µνήµη και επικοινωνεί µε τις άλλες ΚΜΕπάνω από δίκτυα (networks) χρησιµοποιώντας ειδικά πρωτόκολλαανταλλαγής δεδοµένων

— Πλεονεκτήµατα Κατανεµηµένων Συστηµάτων:∆ιαµοιρασµός πόρωνΕπιτάχυνση υπολογισµών – καταµερισµός φόρτου-load sharingΑξιοπιστία και διαθεσιµότητα (reliability & availability)Κλιµάκωση (σταδιακή ανάπτυξη ενός ΥΣ)

Page 32: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 32ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Κατανεµηµένα ΛειτουργικάΣυστήµατα (συνέχεια)

— Απαιτείται δικτυακή υποδοµή

— Τοπικά ∆ίκτυα (Local area networks (LANs)) ή ∆ίκτυαΕυρείας Περιοχής (Wide area networks (WANs))

— Μπορεί να είναι αρχιτεκτονικής πελάτη-εξυπηρετητή(client-server) ή ισότιµων ΥΣ (peer-to-peer)

Page 33: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 33ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

∆οµή Κατανεµηµένου Συστήµατος(πάνω από WAN)

Page 34: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 34ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

∆οµή Υπολογισµών Πελάτη-Εξυπηρετητή (Client – Server)

Page 35: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 35ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Συστήµατα ∆έσµης (Clustered Systems)

— ∆ηµιουργία δέσµης συστηµάτων για το διαµοιρασµόχώρου αποθήκευσης

— Παρέχεται υψηλή αξιοπιστία

— Ασύµµετρη δέσµη (Asymmetric clustering): έναςεξυπηρετητής τρέχει την εφαρµογή και οι άλλοιβρίσκονται σε αναµονή

— Συµµετρική δέσµη (Symmetric clustering): και οι Νσταθµοί εργασίας εκτελούν την εφαρµογή

Page 36: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 36ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Συστήµατα Χειρός

— Ψηφιακοί Βοηθοί (Personal Digital Assistants (PDAs))

— Κινητά τηλέφωνα

— Ζητήµατα:Περιορισµένη µνήµηΑργοί επεξεργαστέςΜικρές οθόνες απεικόνισηςΠεριορισµοί στην κατανάλωση ενέργειας (µπαταρίες)

Page 37: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 37ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Εξέλιξη Εννοιών καιΧαρακτηριστικών των ΛΣ

Page 38: Βασικές Έννοιες Λειτουργικών Συστημάτων

∆οµές ΛειτουργικώνΣυστηµάτων

Page 39: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 39ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

∆οµές ΛΣ

— Μονολιθικά συστήµατα

— Στρωµατοποιηµένα συστήµατα

— Συστήµατα µε ελάχιστο πυρήνα

— Συστήµατα πελάτη-εξυπηρετητή

— Ιδεατές µηχανές

Page 40: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 40ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Μονολιθική Προσέγγιση

— To ΛΣ αποτελείται από ουσιαστικά ένα µεγάλο κοµµάτι κώδικα

— Πρόσβαση στις λειτουργίες του ΛΣ δίνεται µέσω από µια µοναδικήκαι αρκετά εκτεταµένη διεπαφή προγραµµατισµού (Application Programming Interface - API)

— Ακόµα και αν υπάρχουν ξεχωριστά τµήµατα κώδικα (πουµεταφράζονται ξεχωριστά), υπάρχει αρκετά µεγάλη εξάρτησηανάµεσα τους (σε επίπεδο δοµών δεδοµένων ή/και αλγορίθµων)

— Για να αλλάξει µια λειτουργία του ΛΣ πρέπει συνήθως να γίνουναλλαγές σε πολλά διαφορετικά τµήµατα του κώδικα

Page 41: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 41ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

∆οµή του UNIX

UNIX – περιορισµένο από τις δυνατότητες του υλικού, αρχικά το ΛΣ UNIX είχε περιορισµένη δόµηση. Το UNIX αποτελείται από δύο διαχωρίσιµα τµήµατα:

— Προγράµµατα συστήµατος

— Τον πυρήνα (kernel):Αποτελείται από οτιδήποτε υπάρχει κάτω από τη διεπαφή τωνκλήσεων συστήµατος και πάνω από το υλικόΠαρέχει τις λειτουργίες συστήµατος αρχείων, διαχείρισηςµνήµης, χρονοπρογραµµατισµού ΚΜΕ, και άλλες λειτουργίεςενός ΛΣ (µεγάλος αριθµός λειτουργιών για ένα επίπεδο)

Page 42: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 42ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

∆οµή του Unix

Page 43: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 43ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Προσέγγιση σε Επίπεδα (Layered Approach)

— To ΛΣ χωρίζεται σε έναν αριθµό από επίπεδα-στρώµατα(layers ή levels), κάθε ένα από τα οποία χτίζεται πάνωαπό υπάρχοντα επίπεδα. Το κάτω επίπεδο (επίπεδο 0), είναι το υλικό, ενώ το υψηλότερο (επίπεδο N) είναι ηδιεπαφή επικοινωνίας χρήστη-υπολογιστή (user interface)

— Με την τµηµατοποίηση (modularity), τα επίπεδαεπιλέγονται έτσι ώστε το καθένα να χρησιµοποιείλειτουργίες και υπηρεσίες µόνο από τα χαµηλότεραεπίπεδα

Page 44: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 44ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Αναπαράσταση Στρώµατος

Page 45: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 45ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

∆οµή OS/2

Page 46: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 46ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Προσέγγιση Microkernel

— Μετακινεί όσο το δυνατόν περισσότερες λειτουργίες στοχώρο του χρήστη

— Η επικοινωνία µεταξύ των τµηµάτων των χρηστώνγίνεται µε πέρασµα µηνυµάτων

— Πλεονεκτήµατα:ευκολότερη και πιο ευέλικτη επεκτασιµότητα του ΛΣ

ευκολότερη η µεταφορά του ΛΣ σε νέες αρχιτεκτονικές

µεγαλύτερη αξιοπιστία και ασφάλεια (λιγότερος κώδικας τρέχεισε kernel mode)

Page 47: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 47ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Προσέγγιση Client-Server

— Το ΛΣ αποτελείται από µια οµάδα εξυπηρετητών

— Κάθε εξυπηρετητής του ΛΣ ανοίγει ένα κανάλι / δίαυλο επικοινωνίαςκαι περιµένει να λάβει αιτήσεις από πελάτες (προγράµµατα)

— Ένας εξυπηρετητής είναι είτε σειριακός (iterative) όπουεπεξεργάζεται µια αίτηση κάθε φορά (οι αιτήσεις των πελατώντοποθετούνται σε ουρές αναµονής), είτε παράλληλος (concurrent)όπου επεξεργάζεται πολλές αιτήσεις ταυτόχρονα

— Τα προγράµµατα πελάτες επικοινωνούν µε το ΛΣ στέλνονταςαιτήσεις στις διευθύνσεις των αντίστοιχων εξυπηρετητών καιλαµβάνοντας τα αποτελέσµατα

Page 48: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 48ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

∆οµή Πελάτη-Εξυπηρετητή σταWindows NT

Page 49: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 49ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Ιδεατές Μηχανές (Virtual Machines)

— Μια ιδεατή µηχανή (virtual machine) αντιµετωπίζει τουλικό και τον πυρήνα του ΛΣ ως να ήταν όλα υλικό

— Μια ιδεατή µηχανή παρέχει µια προσαρµογήπανοµοιότυπη µε το υφιστάµενο υλικό

— Το ΛΣ παρέχει την ψευδαίσθηση των πολλαπλώνδιεργασιών, όπου η κάθε µια εκτελείται στο δικό τηςεπεξεργαστή µε τη δικιά της (ιδεατή) µνήµη

Page 50: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 50ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Ιδεατές Μηχανές (συνέχεια)

— Οι πόροι του ΥΣ διαµοιράζονται προκειµένου ναδηµιουργήσουν τις ιδεατές µηχανές

Ο χρονοπρογραµµατισµός της ΚΜΕ, µπορεί να δώσει τηνεντύπωση ότι οι χρήστες έχουν δικό τους επεξεργαστή

Η παροχέτευση και ένα σύστηµα αρχείων µπορούν ναπαρέχουν ιδεατούς αναγνώστες καρτών και ιδεατούς εκτυπωτές

Ένα κανονικό τερµατικό χρήστη σε ένα σύστηµα καταµερισµούχρόνου λειτουργεί ως η κονσόλα του χειριστή της ιδεατήςµηχανής

Page 51: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 51ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Μοντέλα Συστηµάτων

Page 52: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 52ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Πλεονεκτήµατα / ΜειονεκτήµαταΙδεατών Μηχανών

— Η έννοια της ιδεατής µηχανής παρέχει πλήρη προστασία των πόρωντου συστήµατος αφού η κάθε ιδεατή µηχανή είναι πλήρωςαποµονωµένη από τις άλλες ιδεατές µηχανές. Αυτή η αποµόνωσηπάντως, δεν επιτρέπει άµεσο διαµοιρασµό πόρων

— Ένα σύστηµα ιδεατής µηχανής είναι είναι το τέλειο όχηµα για έρευνακαι ανάπτυξη στην περιοχή των ΛΣ. Η ανάπτυξη του συστήµατοςγίνεται στην ιδεατή µηχανή, αντί για την πραγµατική και έτσι δενδιασπάται η κανονική λειτουργία του συστήµατος

— Η έννοια των ιδεατών µηχανών είναι δύσκολη στην υλοποίηση λόγωτου φόρτου που απαιτείται για την παροχή ενός πιστού αντιγράφουντης υφιστάµενης µηχανής

Page 53: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 53ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Ιδεατή Μηχανή Java

— Τα µεταγλωττισµένα προγράµµατα Java είναι bytecodes ανεξάρτηταπλατφόρµας που εκτελούνται από την ιδεατή µηχανή Java (Java Virtual Machine – JVM)

— H JVM αποτελείται από:

φορτωτή κλάσεωνεπαληθευτή (class verifier)διερµηνέας σε χρόνο εκτέλεσης (run-time interpreter)

— Αύξηση της απόδοσης µε µεταγλωττιστές Just-In-Time (JIT) πουπαράγουν κώδικα µηχανής όταν µια κλάση φορτώνεται για πρώτηφορά στο σύστηµα

Page 54: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 54ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Ιδεατή Μηχανή Java

Page 55: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 55ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

∆οµικά Τµήµατα (Modules)

— Τα περισσότερα σύγχρονα λειτουργικά συστήµαταυλοποιούν δοµικά τµήµατα πυρήνα (kernel modules)

Χρησιµοποιείται η αντικειµενοστραφής προσέγγισηΤο κάθε τµήµα είναι ξεχωριστόΤο κάθε ένα µιλάει στο άλλο µέσα από γνωστές διεπαφές(interfaces)Το κάθε τµήµα µπορεί να φορτωθεί στον πυρήνα µε βάση τιςανάγκες

— Συνολικά, παρόµοιο µε τα επίπεδα αλλά περισσότεροευέλικτο

Page 56: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 56ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

∆οµικά Τµήµατα (συνέχεια)

Page 57: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 57ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Στόχοι Σχεδιασµού ΛΣ

— Στόχοι για το Χρήστη – το ΛΣ πρέπει να είναι εύκολο στηχρήση, εύκολο στη µάθηση, αξιόπιστο, ασφαλές καιγρήγορο

— Στόχοι για το Σύστηµα – το ΛΣ πρέπει να είναι εύκολοστο σχεδιασµό, την υλοποίηση και τη συντήρηση, καθώςεπίσης και ευέλικτο, αξιόπιστο, χωρίς λάθη καιαποδοτικό

Page 58: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 58ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Μηχανισµοί και Πολιτικές

— Οι µηχανισµοί προσδιορίζουν το πως υλοποιούνται συγκεκριµένεςλειτουργίες του ΛΣ

— Οι πολιτικές προσδιορίζουν το τι τακτική θα ακολουθηθεί σε µιασυγκεκριµένη λειτουργία του ΛΣ (που υλοποιείται από έναµηχανισµό)

— Μέσα από έναν µοναδικό µηχανισµό µπορεί να υποστηριχθούνπολλές διαφορετικές πολιτικές

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

Page 59: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 59ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Υλοποίηση ΛειτουργικώνΣυστηµάτων

— Αν και παραδοσιακά γράφονταν σε assembly, τα ΛΣ µπορούν πλέοννα γράφονται σε γλώσσες προγραµµατισµού υψηλότερου επιπέδου

— Ο κώδικας που γράφεται σε µια γλώσσα υψηλότερου επιπέδου:

µπορεί να γραφτεί γρηγορότεραείναι περισσότερο συµπαγήςείναι εύκολος στην κατανόησηείναι πιο εύκολος στην εκσφαλµάτωση (debugging)

— Ένα ΛΣ είναι ευκολότερα µεταφέρσιµο σε άλλη αρχιτεκτονική(porting) αν είναι γραµµένο σε γλώσσα υψηλού επιπέδου

Page 60: Βασικές Έννοιες Λειτουργικών Συστημάτων

Σελίδα 60ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

«Γέννηση» ΛΣ (SYSGEN)

— Τα ΛΣ είναι ρυθµισµένα να λειτουργούν σε οποιοδήποτε από µιακλάση µηχανηµάτων. Το σύστηµα πρέπει να διαµορφωθεί(configured) για κάθε συγκεκριµένο ΥΣ

— Το πρόγραµµα SYSGEN συλλέγει πληροφορίες που αφορούν τησυγκεκριµένη συγκρότηση του υλικού

— Εκκίνηση (Booting) – εκκίνηση ενός ΥΣ µε τη φόρτωση του πυρήνα

— Πρόγραµµα Bootstrap – κώδικας που φυλάσσεται στη ROM πουείναι σε θέση να εντοπίσει τον κώδικα, να τον φορτώσει στη µνήµηκαι να αρχίσει την εκτέλεσή του