6 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου
Σκοπός του μαθήματος Κατανόηση των βασικών προβλημάτων που αντιμετωπίζουν τα κατανεμημένα συστήματα υπολογιστών Μελέτη ορισμένων χαρακτηριστικών μηχανισμών για την επίλυση τους Χρήση αλγοριθμικών τεχνικών για την ανάλυση της λειτουργίας τους
Προαπαιτούμενα Επιθυμητές γνώσεις: Σχεδίαση και ανάλυση αλγορίθμων (απόδειξη ορθότητας και πολυπλοκότητας) Τυπικές μαθηματικές αποδείξεις Διακριτά μαθηματικά, Πιθανότητες Σχέση με άλλα μαθήματα: Εισαγωγή στους Αλγορίθμους Δίκτυα Υπολογιστών Λειτουργικά Συστήματα Παράλληλα Συστήματα Αλγόριθμοι και Συνδυαστική Βελτιστοποίηση Αλγοριθμικές Θεμελιώσεις Δικτύων Αισθητήρων
Βασικοί oρισμοί Πρόγραμμα κώδικας που ορίζει τι θα κάνει το σύστημα Διεργασία όταν εκτελείται ο κώδικας Μήνυμα χρησιμοποιείται για την επικοινωνία μεταξύ διεργασιών Πακέτο τμήμα ενός μηνύματος που θα μεταφερθεί μέσω του δικτύου Πρωτόκολλο μια αυστηρή περιγραφή μηνυμάτων και κανόνων που πρέπει να ακολουθήσουν οι διεργασίες για να ανταλλάξουν τα μηνύματα Δίκτυο υποδομή που διασυνδέει τις υπολογιστικές μονάδες Κατανεμημένο Σύστημα μια εφαρμογή που εκτελεί μια συλλογή από πρωτόκολλα για τον συντονισμό πολλαπλών διεργασιών ενός δικτύου για την επίτευξη ενός κοινού στόχου
Ορισμός Κατανεμημένου Συστήματος (1) Ο Leslie Lamport δηλώνει για ένα κατανεμημένο σύστημα ότι Γνωρίζεις ότι έχεις ένα όταν, ένα σφάλμα ενός Η/Υ που ούτε ήξερες ότι υπάρχει μπορεί να αχρηστεύσει τον δικό σου Η/Υ Ο Andrew S Tanenbaum σημειώνει ότι Τα κατανεμημένα συστήματα απαιτούν ριζικά διαφορετικό λογισμικό από αυτό που χρησιμοποιούν τα κεντρικοποιημένα συστήματα
Ορισμός Κατανεμημένου Συστήματος (2) Ο Γεώργιος Κουλούρης δίνει τον ορισμό Τα κατανεμημένα συστήματα είναι μία συλλογή από αυτόνομους υπολογιστές που συνδέονται μεταξύ τους μέσω ενός δικτύου, και χρησιμοποιούν ειδικά σχεδιασμένο λογισμικό για την παροχή ενοποιημένων υπολογιστικών υπηρεσιών και σημειώνει ότι σε ένα τέτοιο σύστημα, οι διεργασίες που εκτελούνται από τους δικτυωμένους υπολογιστές επικοινωνούν μεταξύ τους και συντονίζουν τις κινήσεις τους μόνο μέσω της ανταλλαγής μηνυμάτων
Ορισμός Κατανεμημένου Συστήματος (3) Οι Burns & Willings σημειώνουν ότι πρόκειται περί ενός πληροφοριακού συστήματος πολλαπλών αυτόνομων υπολογιστικών στοιχείων, τα οποία συνεργάζονται για την επίτευξη ενός κοινού στόχου
Σημαντικότητα Τα περισσότερα κρίσιμα σύγχρονα υπολογιστικά συστήματα είναι κατανεμημένα (τραπεζικά δίκτυα, Internet, Mobile and Wireless Systems) Το Turing Award 2013 απονεμήθηκε στον Leslie Lamport για την δουλειά του στα Κατανεμημένα Συστήματα: For fundamental contribu ons to the theory and prac ce of distributed and concurrent systems, notably the inven on of concepts such as causality and logical clocks, safety and liveness, replicated state machines, and sequen al consistency
Δίκτυα Υπολογιστών Κατανεμημένα Συστήματα Μαθήματα που σχετίζονται με τα Δίκτυα Υπολογιστών: Μας ενδιαφέρει πώς πραγματοποιείται η μεταφορά μηνυμάτων Δεν μας ενδιαφέρει πώς επεξεργαζόμαστε τα πακέτα Στο μάθημα των Κατανεμημένων Συστημάτων: Υποθέτουμε ότι υπάρχει ένας μηχανισμός αποστολής/παραλαβής μηνυμάτων Εστιάζουμε στις ιδιότητες των μηνυμάτων Σχεδιάζουμε συστήματα που χρησιμοποιούν αυτά τα μηνύματα
Λειτουργικά Συστήματα Κατανεμημένα Συστήματα Μαθήματα που σχετίζονται με τα Λειτουργικά Συστήματα: Οι πόροι είναι αξιόπιστοι Χειριζόμαστε τους πόρους χωρίς να μελετάμε περιπτώσεις σφαλμάτων Τα σφάλματα είναι τοπικά και αντιμετωπίζονται εύκολα πχ με επανεκκίνηση Δεν υπάρχουν προβλήματα συγχρονισμού υπάρχει ένα καθολικό ρολόι Στο μάθημα των Κατανεμημένων Συστημάτων: Η επικοινωνία μέσω δικτύου δεν είναι πάντα αξιόπιστη Μπορεί να μην γνωρίζουμε αν έχει συμβεί κάποιο σφάλμα Δεν υπάρχει ένα καθολικό ρολόι πώς συγχρονίζονται οι διεργασίες;
Παράλληλα Συστήματα Κατανεμημένα Συστήματα Στα Παράλληλα Συστήματα: Οι πολλαπλοί επεξεργαστές είναι τοποθετημένοι στην ίδια υπολογιστική μονάδα Η επικοινωνία μεταξύ των επεξεργαστών είναι γρήγορη Δεν υπάρχουν προβλήματα συγχρονισμού υπάρχει ένα καθολικό ρολόι Οι υπολογιστικές μονάδες είναι υψηλής ποιότητας σπάνια αποτυγχάνουν Στο μάθημα των Κατανεμημένων Συστημάτων: Η επικοινωνία μέσω δικτύου δεν είναι πάντα γρήγορη Δεν υπάρχει ένα καθολικό ρολόι πως συγχρονίζονται οι διεργασίες; Οι μονάδες δεν είναι απαραίτητο να προσφέρουν υψηλή αξιοπιστία
Πλαίσιο εργασίας Στόχος μας είναι ο σχεδιασμός συστημάτων για την επίτευξη ενός συγκεκριμένου στόχου (πχ εκλογή αρχηγού, αμοιβαίος αποκλεισμός) Μοντελοποιούμε τις συνθήκες λειτουργίας του συστήματος Σχεδιάζουμε έναν κατανεμημένο αλγόριθμο Εξετάζουμε τη συμπεριφορά του συστήματος (πχ ορθότητα, πολυπλοκότητα, ανεκτικότητα σε σφάλματα) Υπο την παρουσία σφαλμάτων Όταν οι συνθήκες εκτέλεσης είναι καθορισμένες (συγχρονισμένη εκτέλεση) ή χρονικά ακαθόριστες Πάντα υποθέτουμε ότι οι υπολογιστικές μονάδες συνεργάζονται για την επίτευξη του κοινού στόχου Οποιαδήποτε άλλη περίπτωση θεωρούμε ότι είναι εκτός του φυσιολογικού δηλαδή πρόκειται για ελαττωματική συμπεριφορά
Ρεαλιστικό πλαίσιο Αν όμως οι διεργασίες δεν συμμερίζονται τον κοινό στόχο; Πχ μια διεργασία δεν θέλει να εκλεγεί αρχηγός, ή δεν θέλει να περιμένει την σειρά της για να δεσμεύσει τον πόρο Όταν θέλουμε να μελετήσουμε την συμπεριφορά έξυπνων παικτών, τέτοιου είδους καταστάσεις είναι πολύ πιθανό να προκύψουν κατα την εκτέλεση του συστήματος Πώς τις μοντελοποιούμε; Πώς τις μελετάμε; Οικονομική Θεωρία και Αλγόριθμοι : μάθημα επιλογής, χειμερινού εξαμήνου, του τομέα Εφαρμογών και Θεμελιώσεων Τα Nobel 2008 και 2006 για τα Οικονομικά δόθηκαν στην περιοχή της θεωρίας παιγνίων
Σχεδιάζοντας σωστά συστήματα Τα σύγχρονα συστήματα πληροφορικής και επικοινωνιών επηρεάζουν σχεδόν όλες τις καθημερινές λειτουργίες μας Βασιζόμαστε στις υποδομές πληροφορικής και όταν παρουσιάζεται μια δυσλειτουργία, τοτε υπάρχουν σοβαρές παρενέργειες Διαπιστώνουμε την εξάρτηση μας σε αυτές μόνο όταν οι υποδομές σταματούν να λειτουργούν Τα μελλοντικά συστήματα θα είναι πανταχού παρόντα και θα εμπλέκονται σε όλες τις πτυχές της ζωής Ξεκάθαρα, θέλουμε τα μελλοντικά συστήματα να είναι ανεκτικά σε λάθη, να είναι ανθεκτικά σε διάφορες παραμέτρους και να μπορούμε να βασιστούμε σε αυτά ακόμα και όταν υπάρχουν ξαφνικές περιβαλλοντικές καταστροφές Είναι στοιχειώδες να καταλάβουμε τις επιπτώσεις που έχει ο σχεδιασμός και υλοποίηση των μελλοντικών συστημάτων
Εξάρτηση στις υποδομές Ακούμε πολύ συχνά σε συζητήσεις ανησυχία για τις υποδομές και πόσο εύθραστες είναι - ιδιαίτερα οι υποδομές πληροφορικής Οι περισσότεροι δεν ανησυχούμε για τις υποδομές ηλεκτροδότησης Όμως όταν η παροχή ρεύματος διακόπτεται, τότε μόνο καταλαβαίνουμε τον κεντρικό ρόλο που έχει στον σύγχρονο τρόπο ζωής Αντίστοιχα όταν τα δίκτυα κινητής τηλεφωνίας αποσυνδέονται (πχ μετά τον τελευταίο μεγάλο σεισμό στην Αθήνα)
Ανθεκτικότητα και ανεκτικότητα σε σφάλματα Επομένως προτείνω να θέσουμε έναν νέο στόχο για να γίνει το σύστημα μας περισσότερο ανεκτικό σε σφάλματα Leslie Lamport
Ασφάλεια, επαλήθευση και ανεκτικότητα Edmund M Clarke and E Allen Emerson, Joseph Sifakis, laureates of the 2007 Turing Award, for their roles in developing model checking into a highly effec ve verifica on technology, widely adopted in the hardware and so ware industries Barbara Liskov, laureate of the 2008 Turing Award, for her contribu ons to prac cal and theore cal founda ons of programming language and system design, especially related to data abstrac on, fault tolerance, and distributed compu ng
Ανάλυση συστημάτων Μια βασική μέθοδος για την μελέτη ενός συστήματος είναι η top-down προσέγγιση με ιεραρχικό τρόπο Αρχικά αφαιρούμε όλες τις τεχνικές λεπτομέρειες και μελετάμε το σύστημα σε υψηλό επίπεδο Στη συνέχεια, μελετάμε συγκεκριμένες παραμέτρους και τους τρόπους που επηρεάζουν την απόδοση του συστήματος Επίπεδο προς επίπεδο, βήμα βήμα, καταλήγουμε στο τελικό σύστημα, στις πραγματικές συνθήκες Αυτή η προσέγγιση οδηγεί σε καλά αποτελέσματα για να οργανώσουμε ένα μεγάλο εύρος δομών Οι ιεραρχικές, κεντρικοποιημένες προσεγγίσεις έχουν οδηγήσει σε πολύ καλές λύσεις: τα σημερινά συστήματα Πχ συστήματα διαχείρισης δεδομένων, κινητής τηλεφωνίας
Μοντέρνα συστήματα Όμως ο κόσμος γίνεται ολοένα και πιο πολύπλοκος Είναι αδύνατο να αγνοήσουμε ότι πολλά μοντέρνα συστήματα έχουν τελείως διαφορετική δομή Πχ η ευστάθεια και αποδοτικότητα των σύγχρονων πολιτικο-οικονομικών συστημάτων βασίζεται σε αποκεντρωτικούς, κατανεμημένους μηχανισμούς που πρέπει να αυτο-οργανώνονται Το Internet είναι ένα γνήσιο παράδειγμα μιας αντίστοιχης προσέγγισης σε τεχνολογικό επίπεδο Ακόμα δεν μπορούμε να αντιληφθούμε πώς να οργανώσουμε τεράστιες συλλογές συσκευών με ετερογενείς δυνατότητες Πρόσφατα παρατηρείται μια στροφή από κεντρικοποιημένα συστήματα σε κατανεμημένα δίκτυα που αυτο-οργανώνονται
Κατανεμημένα συστήματα Ένα κατανεμημένο σύστημα: Αποτελείται από ένα πλήθος αυτόνομων κόμβων που επικοινωνούν μεταξύ τους με κάποιο τρόπο για την επίτευξη ενός συγκεκριμένου κοινού στόχου Μπορεί να χαρακτηρίζεται από πλήθος παραμέτρων Πλήθος περιπτώσεων που μπορεί να χρησιμοποιηθεί ένα τέτοιο σύστημα Πλήθος απαιτήσεων λειτουργικότητας ανάλογα με την εφαρμογή Η μελέτη των κατανεμημένων συστημάτων είναι ιδιαίτερα περίπλοκη διαδικασία
Θεωρητική μελέτη κατανεμημένων συστημάτων Η μελέτη ενός κατανεμημένου συστήματος σε θεωρητικό επίπεδο προϋποθέτει: Τη μοντελοποίηση του συστήματος αφαίρεση των τεχνικών λεπτομερειών Αυτό προϋποθέτει ότι μπορούμε να αναγνωρίσουμε τα τεχνικά χαρακτηριστικά που έχουν κεντρική σημασία Όσο πιο αφαιρετικό είναι το μοντέλο, τόσο γενικότερη είναι η μελέτη μας Ορισμός του προβλήματος σύμφωνα με το μοντέλο Σχεδιασμός αλγοριθμικών λύσεων Μελέτη της συμπεριφοράς του συστήματος Απόδειξη ορθότητας Μέτρηση πολυπλοκότητας
Περιορισμοί θεωρητικής μελέτης Η μελέτη ενός κατανεμημένου συστήματος σε θεωρητικό επίπεδο προσφέρει ένα βασικό υπόβαθρο για την κατανόηση της συμπεριφοράς και την αυστηρή διατύπωση της απόδοσης του Όμως εμπεριέχει κινδύνους: Η αφαίρεση ορισμένων τεχνικών λεπτομερειών μπορεί να μας οδηγήσει σε μη ρεαλιστικές / μη εφαρμόσιμες λύσεις Η μέτρηση της πολυπλοκότητας δεν υπολογίζει τις κρυφές σταθερές Μια λύση χειρότερης πολυπλοκότητας μπορεί στην πράξη να είναι καλύτερη Μερικές φορές είναι πολύ δύσκολο (και ίσως αδύνατο) να αναλυθεί η συμπεριφορά ενός συστήματος με θεωρητικά εργαλεία
Πειραματική μελέτη κατανεμημένων συστημάτων Μια διαφορετική προσέγγιση είναι η υλοποίηση συστημάτων και η πειραματική αξιολόγηση τους Υλοποίηση της λύσης σε πειραματικό πλαίσιο, πχ προσομοιωτής, εργαστηριακές εγκαταστάσεις Μελέτη της συμπεριφοράς του συστήματος σύμφωνα με ελεγχόμενα σενάρια Μέτρηση της πραγματικής απόδοσης του συστήματος Άμεση επιβεβαίωση για την εφαρμοσιμότητα μιας λύσης στις πραγματικές υφιστάμενες τεχνολογίες Τα αποτελέσματα είναι μεταφέρσιμα στις πραγματικές συσκευές
Διττή προσέγγιση Η κάθε προσέγγιση έχει θετικά και αρνητικά σημεία: Η θεωρητική μελέτη προσφέρει λύσεις που είναι αποδείξιμα σωστές, αποδοτικές που μπορεί να μην είναι εφαρμόσιμες ή πολύ δύσκολο να προγραμματιστούν Η πρακτική μελέτη αντιμετωπίζει άμεσα τα τεχνολογικά θέματα που μπορεί να μην είναι καινοτόμες και αποδοτικές σε μεγάλα συστήματα Για να είμαστε αποτελεσματικοί πρέπει να ακολουθήσουμε διττή προσέγγιση
Κύκλος Θεωρητικής και Πειραματικής Προσέγγισης
Τυπικά θέματα Διαλέξεις κάθε Πέμπτη, 13:00 15:00, αίθουσα Β3 Βαθμολογία 2 Υποχρεωτικές Ασκήσεις 40% Εξέταση 60%
Ύλη μαθήματος Σύγχρονα Κατανεμημένα Συστήματα Μοντέλο Δίκτυα Δακτυλίου, Γενικά Δίκτυα Εκλογή Αρχηγού Αναζήτηση κατά Εύρος Συντομότερα Μονοπάτια Συναίνεση με Σφάλματα Ασύγχρονα Κατανεμημένα Συστήματα Μοντέλο Δίκτυα Δακτυλίου, Γενικά Δίκτυα Συγχρονισμός Διάταξη Γεγονότων και Λογικός Χρόνος Καθολικές Καταστάσεις, Αποτίμηση Καθολικού Κατηγορήματος Συναίνεση με Εντοπιστές Σφαλμάτων Αυτο-σταθεροποίηση Δυναμικά Κατανεμημένα Συστήματα Πρωτόκολλα Πληθυσμών Κατανεμημένος Υπολογισμός σε Δυναμικά Δίκτυα
Υλικό και Συγγράμματα Υλικό διαλέξεων στη σελίδα του μαθήματος wwwceidupatrasgr/webpages/courses/katanemhmena/ Βιβλία 1 NLynch: Distributed Algorithms 2 ΙΚΚάβουρας, ΙΖΜήλης, ΓΒΞυλωμένος, ΑΑΡουκουνάκη: Κατανεμημένα Συστήματα με Java 3 ATanenbaum, MSteen: Distributed Systems: Principles and Paradigms 4 GTel: Introduc on to Distributed Algorithms 5 HA ya, JWelch: Distributed Compu ng Fundamentals, Simula ons, and Advanced Topics 6 GCoulouris, JDollimore, TKindberg: Distributed Systems, Concepts and Design Διαδίκτυο Ιστοσελίδες των Leslie Lamport (Microso ), Nancy Lynch (MIT), Hagit A ya (Technion), James Aspnes (Yale) και άλλων (και των μαθημάτων που διδάσκουν)
Ασκήσεις Oι ασκήσεις είναι θεωρητικές Θεωρία Εφαρμογή αλγορίθμων Σχεδιασμός αλγορίθμων Ιδιότητες και Απόδοση
Απορίες Συναντήσεις Για οτιδήποτε χρειαστείτε επικοινωνείτε μέσω e-mail: panagopp@ceidupatrasgr
Βιβλιογραφία Βιβλίο Distributed Algorithms (NLynch) Κεφάλαιο 1: Introduc on Βιβλίο Κατανεμημένα Συστήματα με Java (ΙΚΚάβουρας, ΙΖΜήλης, ΓΒΞυλωμένος, ΑΑΡουκουνάκη) Κεφάλαιο 1: Εισαγωγή Βιβλίο Distributed Systems: Principles and Paradigms (ATanenbaum, MSteen) Κεφάλαιο 1: Introduc on