Θεωρία Λειτουργικών Συστημάτων Κατανεμημένα Συστήματα Κώστας Διαμαντάρας Τμήμα Πληροφορικής ΤΕΙ Θεσσαλονίκης 2011
Στοιχεία επικοινωνίας Καθηγητής: Κώστας Διαμαντάρας Τηλ. 2310 013592 Email: kdiamant@it.teithe.gr Ανακοινώσεις, ύλη, διαφάνειες : http://www.it.teithe.gr/~kdiamant/ Βιβλιογραφία: W. Stallings, Λειτουργικά Συστήματα – Αρχές Σχεδίασης, 6η έκδ., Τζιόλας, 2009 G. Coulouris, J. Dollimore, T. Kindberg, Distributed Systems Concept and Design, 4th ed. Addison Wesley, 2005. Βαθμολόγηση 10% στον τελικό βαθμό Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Περιεχόμενα Εισαγωγή στα Κατανεμημένα Συστήματα Υποστήριξη από το Λειτουργικό Σύστημα – το ενδιάμεσο στρώμα (middleware) Επικοινωνία μεταξύ διεργασιών Απομακρυσμένες κλήσεις (Remote Procedure Calls - RPC) Αντικειμενοστραφής προσέγγιση CORBA JAVA Remote Method Invocation (RMI) Web υπηρεσίες Clusters (συστάδες υπολογιστών) Εφαρμογή: Δημιουργία εφαρμογής google apps Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Εισαγωγή Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Κατανεμημένα Συστήματα Ορισμός: κατανεμημένο λέγεται ένα σύστημα του οποίου τα συστατικά υλικό (hardware) και λογισμικό (software) βρίσκονται διασκορπισμένα σε διάφορους υπολογιστές που επικοινωνούν μέσω δικτύου Κίνητρο ο διαμοιρασμός πόρων (resources) όπως εφαρμογές, δεδομένα, επεξεργαστική ισχύς, αποθηκευτικός χώρος, κλπ Σήμερα υπάρχει αυξανόμενη τάση για Κατανεμημένη Επεξεργασία Δεδομένων Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Κατανεμημένη επεξεργασία Πολλοί υπολογιστικοί κόμβοι συνεργάζονται χαλαρά (loosely coupled nodes) Πρώτος στόχος = κατανομή υπηρεσιών, εφαρμογών, επεξεργαστικής ισχύος, ή δεδομένων Δεύτερος στόχος = Ταχύτητα, επιδόσεις Συνήθως αραιή επικοινωνία (όχι όμως απαραίτητα) Οι κόμβοι του κατανεμημένου συστήματος μπορεί να είναι ετερόκλητοι (πχ. Intel x86, Linux, MAC, κλπ) Συνεπώς απαιτείται Τυποποιημένο δίκτυο για την επικοινωνία μεταξύ τους. Πχ. Ethernet, TCP/IP. Το δίκτυο δεν έχει σαφή γεωμετρική δομή, πχ. οι κόμβοι προστίθενται στο δίκτυο με βάση τη θέση τους (πχ. Θεσ/νίκη, Αθήνα, Λαμία, Κρήτη) Παράδειγμα: Πρόβλημα: Διαχείριση Αυτόματων Ταμειακών Μηχανών (ΑΤΜ) μιας τράπεζας που καλύπτει όλη την Ελλάδα Απαιτήσεις: Να μπορεί ο πελάτης να αναλαμβάνει και να καταθέτει χρήματα σε οποιοδήποτε υποκατάστημα χωρίς να έχει εκεί λογαριασμό Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Κατανεμημένη επεξεργασία: Πλεονεκτήματα - μειονεκτήματα Μειονεκτήματα Αυξημένη ευελιξία Τοπική αυτονομία Αυξημένη αξιοπιστία Αυξημένη διαθεσιμότητα Αυξημένη επίδοση Περισσότερα επίπεδα ασφαλείας Δυσκολότερη διαχείριση Δυσκολότερη ασφάλεια Τεχνικό προσωπικό με γνώσεις ολοκλήρωσης συστημάτων Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Προκλήσεις της κατανεμημένης επεξεργασίας Υποστήριξη Ετερογένειας (Heterogeneity) Ανοιχτό Λογισμικό (Openness) Ασφάλεια (Security) Επεκτασιμότητα (Scalability) Χειρισμός σφαλμάτων (Failure handling) Συγχρονισμένη λειτουργία (Concurrency) Διαφάνεια (Transparency) Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Παραδείγματα Κατανεμημένων Συστημάτων: Το διαδίκτυο (internet) intranet Ένα τύπικό τμήμα του internet: intranet intranet intranet Δίκτυο κορμού (backbone) Πάροχος intranet = εξυπηρετητής (server) = πελάτες (clients) = σύνδεση δικτύου Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Το διαδίκτυο (internet) Διαδίκτυο : Τεράστια συλλογή διασυνδεδεμένων δικτύων υπολογιστών διαφόρων τύπων. Οι υπολογιστές στα διάφορα υπο- δίκτυα που επικοινωνούν μεταξύ τους χρησιμοποιούν το πρωτόκολλο επικοινωνίας του διαδικτύου γνωστό ως Internet Protocol (IP). Το διαδίκτυο είναι ένα τεράστιο κατανεμημέννο σύστημα καθώς οι χρήστες του, όπου και αν βρίσκονται, μπορούν να χρησιμοποιούν υπηρεσίες που παρέχονται από απομακρυσμένους εξυπηρετητές, όπως πρόσβαση σε ιστοσελίδες του παγκόσμιου ιστού (World Wide Web), email, μεταφορά αρχείων (ftp), πρόσβαση σε βάσεις δεδομένων, κλπ. Intranets : υποδίκτυα που τα έχουν προμηθευτεί και τα διαχειρίζονται μεγάλες εταιρίες ή ακαδημαϊκά ιδρύματα πρός εξυπηρέτηση των υπαλλήλων τους ή των καθηγητών/φοιτητών τους (πχ. Το εσωτερικό δίκτυο του ΤΕΙΘ) Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Εσωτερικό δίκτυο (intranet) Ένα τυπικό εσωτερικό δίκτυο μιας εταιρείας, ενός οργανισμού, ενός Ακαδημαϊκού Ιδρύματος, κλπ Print server Print server File server Δίκτυο τοπικής περιοχής Web server Δίκτυο τοπικής περιοχής Email server Email server Δίκτυο τοπικής περιοχής File server File server Router Internet Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Άλλα συστατικά του διαδικτύου Πάροχοι διαδικτυκακών υπηρεσιών (Internet Service Providers – ISP) : εταιρείες ή οργανισμοί που παρέχουν στους πελάτες τους πρόσβαση στο διαδίκτυο από το σπίτι τους. Ορισμένοι μικροί οργανισμοί ή εταιρείες συνδέουν το εσωτερικό τους δίκτυο (intranet) στο διαδίκτυο μέσω ISP. Δίκτυο κορμού (backbone) : ο κεντρικός κορμός του διαδικτύου με ζεύξεις πολύ υψηλών ταχυτήτων (πχ. οπτικές ίνες). Ο κεντρικοί άξονες του διαδικτύου συνδέουν στρατηγικά τοποθετημένους κόμβους με δρομολογητες πολύ υψηλών ταχυτήτων σε διάφορα μέρη του κόσμου. Οι κόμβοι αυτοί λέγονται internet exchange points. Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Ορισμοί Πελάτης (client): Υπολογιστής / σταθμός εργασίας που αιτείται και χρησιμοποιεί υπηρεσίες, δεδομένα ή εφαρμογές από κάποιον εξυπηρετητή (μοιάζει με τον πελάτη σε μια τράπεζα) Εξυπηρετητής (server): Ισχυρός υπολογιστής που συγκεντρώνει υπηρεσίες, εφαρμογές ή δεδομένα και τα προσφέρει στους πελάτες αφού τα αιτηθούν (μοιάζει με τον ταμία ή κάποιο υπάλληλο μιας τράπεζας που μπορεί να εξυπηρετεί πολλούς πελάτες) Διασύνδεση προγραμμάτων εφαρμογών (Application Programming interface – API): σύνολο συναρτήσεων και προγραμμάτων που επιτρέπουν την επικοινωνία μεταξύ πελατών – εξυπηρετητών Ενδιάμεσο λογισμικό (Middleware): ένα στρώμα λογισμικού πάνω από το λειτουργικό σύστημα που κρύβει τα ετερογενή χαρακτηριστικά των υπολογιστών που αποτελούν ένα κατανεμημένο σύστημα προσφέροντας μια «αφηρημένη μηχανή» ώστε οι προγραμματιστές να αναπτύσσουν εφαρμογές στο σύστημα. Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Υποστήριξη από το Λειτουργικό Σύστημα Λειτουργικό Σύστημα Δικτύων (Networked Operating System). Εφαρμόζει τη λογική πελάτη – εξυπηρετητή (client – server): υπάρχουν πολλές μηχανές-πελάτες (clients) που βρίσκονται σε δίκτυο και τρέχουν εφαρμογές χρησιμοποιώντας υπηρεσίες που προσφέρονται από άλλες μηχανές-εξυπηρετητές (servers). Κάθε πελάτης και εξυπηρετητής έχει το δικό του αυτόνομο λειτουργικό σύστημα. Το λειτουργικό σύστημα υποστηρίζει την πλατφόρμα επικοινωνίας μεταξύ πελατών-εξυπηρετητών η οποία αποτελεί συμπλήρωμα του λειτουργικού. Κατανεμημένο Λειτουργικό Σύστημα (Distributed Operating System). Το λειτουργικό σύστημα είναι διαμοιραζόμενο σε μια ομάδα υπολογιστών που συνδέονται σε δίκτυο. Στον χρήστη εμφανίζεται σαν ένα κλασικό κεντρικοποιημένο ΛΣ πλήν όμως παρέχει διαφανή πρόσβαση σε πόρους διαφόρων μηχανημάτων Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Λειτουργικά συστήματα δικτύου Τα διαδεδομένα λειτουργικά συστήματα UNIX, Windows, MacOS ανήκουν στην κατηγορία των Λειτουργικών Συστημάτων Δικτύων Δεν υπάρχουν ευρέως διαδεδομένα κατανεμημένα λειτουργικά συστήματα. Βασικότερες αιτίες: Οι χρήστες έχουν επενδύσει σε προγράμματα που τρέχουν σε συγκεκριμένα ΛΣ και δεν είναι διατεθειμένοι να υιοθετήσουν καινούργια (κατανεμημένα) Λειτουργικά Συστήματα εκτός και αν τα πλεονεκτήματα είναι εξαιρετικά σημαντικά και οι απαιτήσεις των εφαρμογών δεν καλύπτονται από τις δικτυακές υπηρεσίες των ΛΣ Δικτύων (πράγμα που δεν ισχύει τελικά) Οι χρήστες επιθυμούν κάποιο βαθμό αυτονομίας του υπολογιστή τους. Αυτονόητο για προσωπικούς υπολογιστές. Ακόμη και σε μια εταιρεία οι υπάλληλοι δεν επιθυμούν οι επιδόσεις των υπολογιστών τους να επηρεάζονται από την χρήση που κάνουν οι άλλοι στο σύστημα. Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Στρώματα λογισμικού κατανεμημένων συστημάτων (1) Το αρχιτεκτονικό μοντέλο λογισμικού για κατανεμημένα συστήματα αποτελείται από στρώματα με αυξανόμενα επίπεδα αφαίρεσης, δηλαδή ανεξαρτησίας από το συγκεκριμένο υλικό (hardware) όπου εκτελείται τελικά η εφαρμογή. Ανώτατο στρώμα: Εφαρμογή (πχ. υπηρεσία Email). Καμία εξάρτηση από την πλατφόρμα Εφαρμογές ή υπηρεσίες Ενδιάμεσο λογισμικό (middleware) Ενδιάμεσο στρώμα: Προσφέρει API για ανάπτυξη εφαρμογών. Εξαρτάται από την πλατφόρμα Λειτουργικό Σύστημα Πλατφόρμα Κατώτερο στρώμα: Το λειτουργικό σύστημα είναι μέρος της πλατφόρμας Υλικό υπολογιστή και δικτύου (hardware) Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Στρώματα λογισμικού κατανεμημένων συστημάτων (2) Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Το ενδιάμεσο λογισμικό (middleware) Middleware: Ένα ομοιογενές στρώμα λογισμικού που βρίσκεται πάνω από το λειτουργικό σύστημα. Το ενδιάμεσο λογισμικό χαρακτηρίζεται από αντικείμενα (objects) και διαδικασίες (processes) που επικοινωνούν μεταξύ τους ώστε να υποστηρίζεται η επικοινωνία και ο διαμοιρασμός πόρων μεταξύ κατανεμημένων εφαρμογών κρύβοντας τις λεπτομέρειες του ΛΣ. Χαρακτηριστικά παραδείγματα Middleware: Remote Procedure Calls (RPC) CORBA (Common Object Request Broker Architecture) από το OMG (Open Management Group) Java RMI (remote method invocation) Οι υπηρεσίες του web Distributed Component Object Model (DCOM) της Microsoft κλπ Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Το στρώμα του ενδιάμεσου λογισμικού Στρώματα Middleware Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Εφαρμογές πελάτη - εξυπηρετητή Χαρακτηριστικά: ΛΣ πελάτη διαφορετικό από ΛΣ εξυπηρετητή ΛΣ πελατών πιθανώς διαφέρουν μεταξύ τους Απαραίτητη επικοινωνία πελάτη εξυπηρετητή μέσω τυποποιημένου πρωτοκόλλου (πχ TCP/IP) Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Εφαρμογές πελάτη - εξυπηρετητή Αίτημα Απόκριση Πρωτόκολλο δικτύου Πλατφόρμα πελάτη Πλατφόρμα εξυπηρετητή Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Παράδειγμα: Web Αίτημα http Αίτημα http Λήψη σελίδας html Πελάτης: Εφαρμογή: Mozilla Firefox (Web browser) Ο Firefox στέλνει αίτημα προσκόμισης της ιστοσελίδας http://195.251.123.246/ Ο Firefox λαμβάνει το αρχείο html, το επεξεργάζεται και το δείχνει την οθόνη. Εξυπηρετητής: Εφαρμογή: Apache (http server) Λαμβάνει το αίτημα http Απαντάει προσκομίζοντας μια σελίδα (αρχείο) html Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Παράδειγμα: Web Ο πελάτης μπορεί να διαθέτει οποιοδήποτε λειτουργικό απλού σταθμού εργασίας (πχ, Windows, Linux, Mac OS, κλπ) Ο εξυπηρετητής μπορεί επίσης να διαθέτει οποιοδήποτε λειτουργικό εξυπηρετητή (πχ, Windows Server, UNIX, Mac OS X Server, κλπ) Το ενδιάμεσο λογισμικό που υλοποιεί το πρωτόκολλο ανταλλαγής αρχείων hyper-text (hyper-text transfer protocol – http) κάνει το ΛΣ διαφανές τόσο για τον πελάτη όσο και για τον εξυπηρετητή: ούτε ο πελάτης χρειάζεται να γνωρίζει το ΛΣ του εξυπηρετητή ούτε ο εξυπηρετητής χρειάζεται να γνωρίζει το ΛΣ του πελάτη. Οποιοσδήποτε συνδυασμός των ΛΣ πελάτη / εξυπηρετητή δουλεύει καθώς η επικοινωνία βασίζεται στο ενδιάμεσο στρώμα που είναι κοινό. Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Παράδειγμα: Η υπηρεσία Domain Name (DNS) Λήψη IP address Απόκριση = IP address Πελάτης: Εφαρμογή: nslookup (DOS) Το nslookup στέλνει αίτημα διαλεύκανσης του ονόματος nslookup www.it.teithe.gr Το nslookup λαμβάνει το IP address και το τυπώνει στην οθόνη. Εξυπηρετητής: Εφαρμογή: BIND (DN Server για Unix) Λαμβάνει το αίτημα διαλεύκανσης ονόματος Απαντάει προσκομίζοντας το IP address = 195.251.123.246 Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Παράδειγμα: Βάσεις Δεδομένων Από τις πλέον συνηθισμένες οικογένεια εφαρμογών πελάτη – εξυπηρετητή. Ο πελάτης στέλνει ερωτήματα (queries) σε μια (σχεσιακή) βάση δεδομένων (ΒΔ) που βρίσκεται στον εξυπηρετητή. Ο εξυπηρετητής εκτελεί τα ερωτήματα και επιστρέφει την απάντηση με την μορφή γραμμών σε ένα πίνακα. Πελάτης Εξυπηρετητής Αίτημα Λογική ΒΔ Απόκριση Λογ. Επικοιν. DBMS Πρωτόκολλο δικτύου Πλατφόρμα (υλικό + ΛΣ) Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Τύποι εφαρμογών πελάτη/εξυπηρετητή Επεξεργασία βασισμένη στον πελάτη (client-based) Πελάτης Εξυπηρετητής Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Τύποι εφαρμογών πελάτη/εξυπηρετητή Επεξεργασία βασισμένη στον εξυπηρετητή (server-based) Ο πελάτης είναι επιφορτισμένος με την διεπαφή του χρήστη, συνήθως ένα γραφικό περιβάλλον με παράθυρα γνωστό ως graphical user interface (GUI) Όλη η επεξεργασία γίνεται στο περιβάλλον του εξυπηρετητή Πελάτης Εξυπηρετητής Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Παράδειγμα: Επεξεργασία βασισμένη στον πελάτη E-mail client Υπηρεσία SMTP Αίτημα Αποστολής μηνύματος Αίτημα Αποστολής / Λήψης μηνυμ. Αίτημα Λήψης μηνύματος Λήψη μηνυμάτων Υπηρεσία POP/IMAP Απόκριση = μηνύματα Πελάτης: Εφαρμογή: Mozilla Thunderbird (email client) Τα μηνύματα φυλάσσονται στον δίσκο του πελάτη. Η επεξεργασία των μηνυμάτων γίνεται στον πελάτη Εξυπηρετητής: Εφαρμογή: Microsoft Exchange Server Υπηρεσίες : SMTP για αποστολή και POP3/IMAP για λήψη μηνυμάτων Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Παράδειγμα: Επεξεργασία βασισμένη στον εξυπηρετητή (1) Web mail Αίτημα http Αίτημα http Λήψη html σελίδας Εκτέλεση. Απόκριση html Πελάτης: Εφαρμογή: Google Chrome (web browser) Αποστολή (με χρήση http) αιτήματος αποστολής, λήψης ή επεξεργασίας μηνυματων http://webmail.teithe.gr Ο Chrome λαμβάνει την σελίδα και την εμφανίζει στην οθόνη Εξυπηρετητής (Google): Εφαρμογή: Horde (open source webmail server) Λαμβάνει το αίτημα Εκτελεί την αιτούμενη λειτουργία Αποκρίνεται προσκομίζοντας μια html σελίδα με την απάντηση στο αίτημα Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων
Παράδειγμα: Επεξεργασία βασισμένη στον εξυπηρετητή (2) Google search Ερώτημα search Ερώτημα search Λήψη html σελίδας Απόκριση = html σελίδα Πελάτης: Εφαρμογή: Internet Explorer (web browser) Αποστολή (με χρήση http) ερωτήματος search www.google.com Ο IE λαμβάνει την σελίδα και την εμφανίζει στην οθόνη Εξυπηρετητής (Google): Εφαρμογή: Ιδιωτική της google (όχι γνωστές λεπτομέρειες) Λαμβάνει το ερώτημα search Αποκρίνεται προσκομίζοντας μια html σελίδα με την απάντηση στο ερώτημα Κ. Διαμαντάρας Θεωρία Λειτουργικών Συστημάτων