Τεχνολογικά Επιτεύγµατα Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 Ανάπτυξη ισχυρών µικροεπεξεργαστών ηµιουργία τοπικών δικτύων υψηλών ταχυτήτων «Εισαγωγή στα Κατανεµηµένα Λειτουργικά Συστήµατα» ρ. Παναγιώτης Χατζηδούκας (Π..407/80) υνατή και εύκολη η κοινή λειτουργία πολλών υπολογιστικών συστηµάτων κατανεµηµένα συστήµατα Σε αντίθεση µε τα κεντρικοποιηµένα συστήµατα (CU, µνήµη, περιφερειακά, τερµατικά) E-03: Λειτουργικά Συστήµατα ΙΙ 1 E-03: Λειτουργικά Συστήµατα ΙΙ 2 Ορισµός Κατανεµηµένου Συστήµατος «Ένα σύστηµα που τρέχει σε µια συλλογή από ανεξάρτητους υπολογιστές ενώ δίνει στους χρήστες την εντύπωση ενός µοναδικού υπολογιστή» Ένα κατανεµηµένο σύστηµα: Πολλαπλοί συνδεδεµένοι επεξεργαστές που εργάζονται µαζί (υλικό) Συλλογή ανεξάρτητων υπολογιστών που εµφανίζεται στους χρήστες ως ένα σύστηµα (λογισµικό) Παραδείγµατα: παράλληλα συστήµατα, δίκτυα υπολογιστών Πλεονεκτήµατα Οικονοµία Οι µικροεπεξεργαστές παρέχουν καλύτερο λόγο κόστους/απόδοση από τα κεντρικά υπολογιστικά συστήµατα Ταχύτητα Ένα Κ.Σ. µπορεί να έχει συνολικά περισσότερη υπολογιστική ισχύ Έµφυτη κατανοµή Μερικές εφαρµογές είναι κατανεµηµένες από τη φύση τους και αναφέρονται σε ξεχωριστές µηχανές Αξιοπιστία Αν µια µηχανή καταρρεύσει, το σύστηµα µπορεί να συνεχίσει να λειτουργεί ιαδοχική ανάπτυξη Μπορεί να προστεθεί υπολογιστική ισχύς µέσω διαδοχικών αυξήσεων E-03: Λειτουργικά Συστήµατα ΙΙ 3 E-03: Λειτουργικά Συστήµατα ΙΙ 4 Πλεονεκτήµατα Μειονεκτήµατα ιαµοιρασµός δεδοµένων Επιτρέπει την πρόσβαση πολλών χρηστών σε µια κοινή βάση δεδοµένων ιαµοιρασµός συσκευών Πολλοί χρήστες διαµοιράζονται ακριβά περιφερειακά Επικοινωνία Μεταξύ χρηστών και εφαρµογών Ευελιξία ιανοµή του φόρτου εργασίας στις διαθέσιµες µηχανές µε αποτελεσµατικό τρόπο Λογισµικό Κατάλληλες γλώσσες, λειτουργικά συστήµατα και εφαρµογές ικτύωση Εγκατάσταση, αξιοπιστία, υπερφόρτωση ή κορεσµός δικτύου Ασφάλεια Η έννοια της εύκολης πρόσβασης έχει εφαρµογή σε κρυφά δεδοµένα E-03: Λειτουργικά Συστήµατα ΙΙ 5 E-03: Λειτουργικά Συστήµατα ΙΙ 6 1
Στόχοι σχεδίασης Κ.Σ. Εύκολη διασύνδεση χρηστών και πόρων Εξασφαλίζοντας φυσικά την ασφάλεια Απόκρυψη του γεγονότος ότι οι διεργασίες και πόροι είναι κατανεµηµένες µεταξύ πολλαπλών υπολογιστών Ένα Κ.Σ. πρέπει να είναι ανοιχτό Παρέχει υπηρεσίες σύµφωνα µε συγκεκριµένους κανόνες που περιγράφουν τη σύνταξη και τη σηµασία των υπηρεσιών Ένα Κ.Σ. πρέπει να έχει ικανότητα κλιµάκωσης Μέγεθος, Χώρο, ιαχείριση πρόσβασης (access) τοποθέτησης (location) µετανάστευσης (migration) επανατοποθέτησης (relocation) οµοιοτυπίας (replication) ταυτοχρονισµού (concurrency) βλάβης (failure) διατήρησης (persistence) παραλληλισµού (parallelism) E-03: Λειτουργικά Συστήµατα ΙΙ 7 E-03: Λειτουργικά Συστήµατα ΙΙ 8 πρόσβασης (access): Απόκρυψη διαφορών στην απεικόνιση δεδοµένων και στο τρόπο πρόσβασης ενός πόρου Little / Big endian Ονοµασία αρχείων τοποθέτησης (location): Οι χρήστες δεν γνωρίζουν που βρίσκονται οι πόροι Το όνοµα ενός πόρου δεν υποδηλώνει την τοποθεσία του µετανάστευσης (migration): Οι πόροι µπορούν να µετακινούνται κατά βούληση χωρίς µεταβολή του ονόµατός τους επανατοποθέτησης (relocation): Οι πόροι µπορούν να µετακινούνται ενώ βρίσκονται σε χρήση Μετακίνηση wireless laptop οµοιοτυπίας (replication): Οι χρήστες δεν γνωρίζουν πόσα οµοιότυπα υπάρχουν ηµιουργία οµοιότυπων αρχείων και πόρων από το λειτουργικό σύστηµα ταυτοχρονισµού (concurrency): Πολλαπλοί χρήστες µπορούν να διαµοιράζονται αυτόµατα τους πόρους Ο διαµοιραζόµενος πόρος πρέπει να είναι σε συνεπή κατάσταση E-03: Λειτουργικά Συστήµατα ΙΙ 9 E-03: Λειτουργικά Συστήµατα ΙΙ 10 βλάβης (failure): Οι χρήστες δεν αντιλαµβάνεται ότι ένας (πιθανόν άγνωστος για αυτόν) πόρος δεν λειτουργεί και το σύστηµα καλύπτει το συγκεκριµένο πρόβληµα ιαθεσιµότητα: ποσοστό του χρόνου κατά το οποίο το σύστηµα είναι διαθέσιµο Σωστή σχεδίαση και πλεονασµός Ανεκτικότητα σε σφάλµατα διατήρησης (persistence): Απόκρυψη αν ένας πόρος είναι σε µνήµη ή δίσκο Τρόπος λειτουργίας ενός εξυπηρετητή βάσεως δεδοµένων παραλληλισµού (parallelism): Εκτέλεση παράλληλων εφαρµογών στο κατανεµηµένο σύστηµα Χρησιµοποίηση πολλαπλών CUs για την επίλυση ενός µόνο προβλήµατος Γνώση της αρχιτεκτονικής του συστήµατος (?) Επιλογή προγραµµατιστικού µοντέλου Έρευνα: συνεργασία µεταγλωττιστή, συστήµατος χρόνου εκτέλεσης και λειτουργικού συστήµατος E-03: Λειτουργικά Συστήµατα ΙΙ 11 E-03: Λειτουργικά Συστήµατα ΙΙ 12 2
Κλιµάκωση Αποκεντρικοποιηµένοι αλγόριθµοι Ως προς το µέγεθος Πρέπει να αποφεύγονται Κεντρικοποιηµένες δοµικές µονάδες: Μοναδικός εξυπηρετητής ταχυδροµείου για όλους τους χρήστες Κεντρικοποιηµένοι πίνακες: Μοναδικός τηλεφωνικός κατάλογος άµεσης πρόσβασης Κεντρικοποιηµένοι αλγόριθµοι: ροµολόγηση που βασίζεται σε πλήρεις πληροφορίες (φόρτο µηχανών και γραµµών µεταφοράς) Η συλλογή και µεταφορά όλων των πληροφοριών είναι προβληµατική Καµία µηχανή δεν έχει ολοκληρωµένη πληροφόρηση για την κατάσταση του συστήµατος Οι µηχανές παίρνουν αποφάσεις βασιζόµενες µόνο στις τοπικά διαθέσιµες πληροφορίες Η κατάρρευση µιας µηχανής δεν καταστρέφει τον αλγόριθµο εν υπονοείται ότι υπάρχει καθολικό ρολόι Αναφορά φόρτου κάποια συγκεκριµένη στιγµή E-03: Λειτουργικά Συστήµατα ΙΙ 13 E-03: Λειτουργικά Συστήµατα ΙΙ 14 Τεχνικές κλιµάκωσης Ζητήµατα Υλικού Προβλήµατα λόγω της περιορισµένης χωρητικότητας των εξυπηρετητών και του δικτύου Απόκρυψη καθυστέρησης επικοινωνίας Ασύγχρονη επικοινωνία Επικάλυψη επικοινωνίας και υπολογισµού Μετακίνηση υπολογισµών από τον εξυπηρετητή στον πελάτη Καταµερισµός (distribution) ιαχωρισµός ενός συστατικού σε µικρότερα µέρη και διαµοίραση τους στο σύστηµα Οµοιοτυπία (replication) Αύξηση διαθεσιµότητας, Εξισορρόπηση φόρτου Caching: πραγµατοποιείται από τον πελάτη κι όχι τον ιδιοκτήτη του πόρου Πολλαπλά αντίγραφα και ζήτηµα συνέπειάς τους (consistency) Συστήµατα ως συλλογή ανεξάρτητων υπολογιστών 1 ο κριτήριο: ιάθεση διαµοιραζόµενης µνήµης Πολυεπεξεργαστές (multiprocessors): κοινό πεδίο διευθύνσεων Πολυυπολογιστές (multicomputers): τοπική ιδιωτική µνήµη 2 ο κριτήριο: Αρχιτεκτονική δικτύου διασύνδεσης Αρτηρίας (bus): ύπαρξη µοναδικού δικτύου, αρτηρίας, καλωδίου ή άλλου µέσου που συνδέει όλες τις µηχανές Μεταγωγής (switched): ανεξάρτητοι αγωγοί µε πολλά και διαφορετικά πρότυπα διασύνδεσης Πολυυπολογιστές: Οµοιογενείς ή Ετερογενείς E-03: Λειτουργικά Συστήµατα ΙΙ 15 E-03: Λειτουργικά Συστήµατα ΙΙ 16 Πολυεπεξεργαστές Κοινόπεδίο διευθύνσεων Μνήµη: µπορεί να διαµοιράζεται πλήρως ή να βρίσκεται τοπικά σε κάθε επεξεργαστή ιασυνδετικόδίκτυο: διαµοιραζόµενο (bus-based) ή µεταγωγής (switched) Πολυεπεξεργαστές Βασισµένοι σε Αρτηρία Κοινή αρτηρία και ένα τµήµα µνήµης Μια CU διαβάζει πάντα την τιµή µιας λέξης µνήµης που έχει γραφτεί τελευταία (συνέπεια) Χρήση κρυφής µνήµης για αποφυγή υπερφόρτωσης της αρτηρίας (ποσοστό επιτυχίας) Write-through cache: εγγραφή πάντα στην κύρια µνήµη Snoopy cache: παρακολούθηση της αρτηρίας για τιµές που γράφονται στην µνήµη E-03: Λειτουργικά Συστήµατα ΙΙ 17 E-03: Λειτουργικά Συστήµατα ΙΙ 18 3
Πολυεπεξεργαστές Μεταγωγής Πολυεπεξεργαστές Μεταγωγής Πίνακας Μεταγωγής + Ταυτόχρονη πρόσβαση στη µνήµη από πολλές CUs Υψηλός κόστος: n 2 σηµεία µεταγωγής ίκτυο ωµέγα + Μικρότερο κόστος n logn σηµεία µεταγωγής + n στάδια µεταγωγής (x2) E-03: Λειτουργικά Συστήµατα ΙΙ 19 E-03: Λειτουργικά Συστήµατα ΙΙ 20 Αρχιτεκτονική NUMA Μη Οµοιόµορφη Πρόσβαση Μνήµης (NonUniform Access) Ιεραρχικόσύστηµα οργάνωση της µνήµης Μία µνήµη σχετίζεται µε κάθε CU (ή και περισσότερες) Γρήγορη τοπική πρόσβαση και πιο αργή αποµακρυσµένη (3:1) υσκολία: σωστή τοποθέτηση προγράµµατος και δεδοµένων ώστε οι περισσότερες προσπελάσεις να πραγµατοποιούνται προς την τοπική µνήµη Πολυυπολογιστές Βασισµένοι σε Αρτηρία Παρόµοιοι µε τους αντίστοιχους πολυεπεξεργαστές Λόγω των τοπικών µνηµών η ένταση της κυκλοφορίας στο δίκτυο είναι σηµαντικά χαµηλότερη E-03: Λειτουργικά Συστήµατα ΙΙ 21 E-03: Λειτουργικά Συστήµατα ΙΙ 22 Οµοιογενείς Πολυυπολογιστές Μεταγωγής Οµοιογενείς Πολυυπολογιστές Μεταγωγής Πλέγµα (α) Κατάλληλο για προβλήµατα µε εγγενή δυσδιασταση φύση (θεωρία γράφων, διόραση) Υπερκύβος (β) Ν διαστάσεων: κάθε CU έχει N συνδέσεις µε άλλες Μέγιστο µονοπάτι επικοινωνίας: log(n) E-03: Λειτουργικά Συστήµατα ΙΙ 23 E-03: Λειτουργικά Συστήµατα ΙΙ 24 4
Ζητήµατα Λογισµικού Ένα ΛΣ ενεργεί ως διαχειριστής πόρων ιαχειρίζεται CU, Συσκευές Ε/Ε, Μνήµη Παρέχει µια ιδεατή διασύνδεση που διευκολύνει τη χρήση του υλικού υο κατηγορίες ΛΣ Χαλαρά συνδεδεµένα: οι µηχανές και οι χρήστες είναι θεµελιωδώς ανεξάρτητοι µεταξύ τους αλλά αλληλεπιδρούν σε κάποιο περιορισµένο βαθµό Στενά συνδεδεµένα: το λογισµικό προσπαθεί να διατηρήσει µια ενιαία καθολική εικόνα των πόρων που διαχειρίζεται Κατηγορίες ΛΣ Κατανεµηµένο Λειτουργικό Σύστηµα (DOS) Στενά συνδεδεµένο ΛΣ για πολυεπεξεργαστές και οµοιογενείς πολυυπολογιστές Αποκρύβει και διαχειρίζεται τους πόρους υλικού Λειτουργικό Σύστηµα ικτύου (NOS) Χαλαρά συνδεδεµένο ΛΣ για ετερογενείς πολυυπολογιστές (LAN and WAN) Παρέχει τοπικές υπηρεσίες σε αποµακρυσµένους χρήστες Ενδιάµεσο λογισµικό Επιπρόσθετο επίπεδο σε ένα ΛΣ ικτύου που υλοποιεί υπηρεσίες γενικού σκοπού Παρέχει διαφάνεια καταµερισµού E-03: Λειτουργικά Συστήµατα ΙΙ 25 E-03: Λειτουργικά Συστήµατα ΙΙ 26 Κατανεµηµένο ΛΣ Μονοεπεξεργαστικό ΛΣ ιαχειρίζεται τους πόρους σε ένα κατανεµηµένο σύστηµα Παρέχει διαφάνεια Τοποθέτηση, µετανάστευση, συγχρονισµός, διαχείριση δεδοµένων, Παρουσιάζεται στο χρήστη σαν κεντρικοποιηµένο ΛΣ Αλλά λειτουργεί σε πολλαπλούς ανεξάρτητους επεξεργαστές ηµιουργία της ψευδαίσθησης ότι το όλο δίκτυο υπολογιστών είναι ένα µοναδικό σύστηµα διαµοιρασµού χρόνου Εικόνα µοναδικού συστήµατος (Single System Image, SSI) Παρέχει στους χρήστες ένα ιδεατό µονοεπεξεργαστικό σύστηµα οµή µονοεπεξεργαστικών ΛΣ Μονολιθικά (π.χ., MS-DOS, πρώιµο UNIX) Ένας ενιαίος πυρήνας που διαχειρίζεται τα πάντα Πολυεπίπεδη σχεδίαση Η λειτουργικότητα παρέχεται από N επίπεδα Κάθε επίπεδο κάνει χρήση των υπηρεσιών του κατώτερου επιπέδου και υλοποιεί νέες υπηρεσίες για το ανώτερο επίπεδο Αρχιτεκτονική µικροπυρήνα (Microkernel) E-03: Λειτουργικά Συστήµατα ΙΙ 27 E-03: Λειτουργικά Συστήµατα ΙΙ 28 Μονοεπεξεργαστικό ΛΣ Πολυεπεξεργαστικό ΛΣ Αρχιτεκτονική µικροπυρήνα Μικρός πυρήνας Εξυπηρετητές επιπέδου χρήστη υλοποιούν επιπλέον λειτουργικότητα (π.χ. QNX) Παρόµοιο µε ένα µονοεπεξεργαστικό ΛΣ ιαχειρίζεται πολλαπλούς επεξεργαστές µε διαφάνεια προς το χρήστη Παραδοσιακά µονολιθικά δεν είναι κατάλληλα λόγω των πολλών επεξεργαστών Οι εσωτερικές δοµές και λειτουργίες βασίζονται στην υπάρχουσα κοινή µνήµη και προστατεύονται µε κατάλληλους µηχανισµούς συγχρονισµού E-03: Λειτουργικά Συστήµατα ΙΙ 29 E-03: Λειτουργικά Συστήµατα ΙΙ 30 5
Πολυυπολογιστικό ΛΣ Κοινή Ιδεατή Μνήµη εν υπάρχει κοινή µνήµη, κάθε κόµβος έχει δικό του πυρήνα Ειδικό λογισµικό για τη διαχείριση µηνυµάτων Λογισµικό που υλοποιεί το ΛΣ σαν ιδεατή µηχανή για παράλληλη και σύγχρονη εκτέλεση εργασιών Μπορεί να υλοποιεί κοινή µνήµη σε επίπεδο λογισµικού Ευκολία προγραµµατισµού κοινής µνήµης σε σχέση µε τη ρητή µεταβίβαση µηνυµάτων Κοινή Ιδεατή Μνήµη ή Κοινή Κατανεµηµένη Μνήµη βασισµένη σε λογισµικό: εξοµοίωση κοινής µνήµης Λειτουργίες Ιδεατής Μνήµης, διαχωρισµός του πεδίου διευθύνσεων σε σελίδες, διαµοίραση των σελίδων στους κόµβους Shared Interconnection Network E-03: Λειτουργικά Συστήµατα ΙΙ 31 E-03: Λειτουργικά Συστήµατα ΙΙ 32 Λειτουργικό Σύστηµα ικτύου εν υποθέτουν ότι το υλικό είναι οµοιογενές και πρέπει να διαχειρίζεται ως ένα σύστηµα Παρέχουν αποµακρυσµένη πρόσβαση και µεταφορά αρχείων Λειτουργικό Σύστηµα ικτύου Χρησιµοποιείται το µοντέλο πελάτη-εξυπηρετητή Ελάχιστος πυρήνας λειτουργικού συστήµατος Επιπρόσθετη λειτουργικότητα µε διεργασίες επιπέδου χρήστη E-03: Λειτουργικά Συστήµατα ΙΙ 33 E-03: Λειτουργικά Συστήµατα ΙΙ 34 Ενδιάµεσο Λογισµικό Σύγκριση µεταξύ των συστηµάτων Κατανεµηµένο ΛΣ: δεν διαχειρίζεται ανεξάρτητα συστήµατα ΛΣ ικτύου: δεν παρέχει ένα ενιαίο συνεπές σύστηµα Ενδιάµεσο Λογισµικό: Συνδυάζει τις δύο παραπάνω περιπτώσεις Ζήτηµα Βαθµός ς Κατανεµηµένο ΛΣ Πολύεπεξεργαστέυπολογιστές Πολύ- Πολύ υψηλή Υψηλή ΛΣ ικτύου Χαµηλή ΛΣ βασισµένο σε ενδιάµεσο λογισµικό Υψηλή Ίδιο ΛΣ σε όλους τους κόµβους Ναι Ναι Όχι Όχι Αντίγραφα ΛΣ 1 N N N Βάση επικοινωνίας Κοινή Μνήµη Μηνύµατα Αρχεία Εξαρτάται από το µοντέλο ιαχείριση πόρων Καθολική, Κεντρική Καθολική, Κατανεµηµένη Ανά κόµβο Ανά κόµβο Ικανότητα κλιµάκωσης Όχι Μέτρια Ναι Ποικίλει Ανοιχτή σχεδίαση Κλειστή Κλειστή Ανοιχτή Ανοιχτή E-03: Λειτουργικά Συστήµατα ΙΙ 35 E-03: Λειτουργικά Συστήµατα ΙΙ 36 6