Κατανεμημένα Συστήματα Ι Εισαγωγή Παναγιώτα Παναγοπούλου
Τι είναι ένα Κατανεμημένο Σύστημα; Ένα κατανεμημένο σύστημα αποτελείται από ένα πλήθος αυτόνομων κόμβων που επικοινωνούν μεταξύ τους με κάποιο τρόπο για την επίτευξη ενός συγκεκριμένου κοινού στόχου
Τι είναι ένα Κατανεμημένο Σύστημα; Ο Γεώργιος Κουλούρης δίνει τον ορισμό Τα κατανεμημένα συστήματα είναι μία συλλογή από αυτόνομους υπολογιστές που συνδέονται μεταξύ τους μέσω ενός δικτύου, και χρησιμοποιούν ειδικά σχεδιασμένο λογισμικό για την παροχή ενοποιημένων υπολογιστικών υπηρεσιών και σημειώνει ότι σε ένα τέτοιο σύστημα, οι διεργασίες που εκτελούνται από τους δικτυωμένους υπολογιστές επικοινωνούν μεταξύ τους και συντονίζουν τις κινήσεις τους μόνο μέσω της ανταλλαγής μηνυμάτων Ο Andrew S Tanenbaum σημειώνει ότι Τα κατανεμημένα συστήματα απαιτούν ριζικά διαφορετικό λογισμικό από αυτό που χρησιμοποιούν τα κεντρικοποιημένα συστήματα Οι Burns & Willings σημειώνουν ότι πρόκειται περί ενός πληροφοριακού συστήματος πολλαπλών αυτόνομων υπολογιστικών στοιχείων, τα οποία συνεργάζονται για την επίτευξη ενός κοινού στόχου
Τι είναι ένα Κατανεμημένο Σύστημα; Leslie Lamport: Γνωρίζεις ότι έχεις ένα κατανεμημένο σύστημα όταν, ένα σφάλμα ενός Η/Υ που ούτε ήξερες ότι υπάρχει, μπορεί να αχρηστεύσει τον δικό σου Η/Υ
Σημαντικότητα Τα περισσότερα κρίσιμα σύγχρονα υπολογιστικά συστήματα είναι κατανεμημένα (τραπεζικά δίκτυα, 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
Σκοπός του μαθήματος Κατανόηση των βασικών προβλημάτων που αντιμετωπίζουν τα κατανεμημένα συστήματα υπολογιστών Μελέτη ορισμένων χαρακτηριστικών μηχανισμών για την επίλυση τους Χρήση αλγοριθμικών τεχνικών για την ανάλυση της λειτουργίας τους
Κατανεμημένοι αλγόριθμοι Αλγόριθμοι που δουλεύουν σε κατανεμημένα δίκτυα Εκτελούν λειτουργίες όπως: Επικοινωνία Διαχείριση δεδομένων Διαχείριση πόρων Συγχρονισμός Συναίνεση Πρέπει να δουλεύουν σε δύσκολες συνθήκες: Ταυτόχρονη δραστηριότητα σε πολλές τοποθεσίες Αβεβαιότητα σχετικά με το χρονισμό, τη διάταξη των γεγονότων, την είσοδο Αστοχία και επαναλειτουργία των μηχανών/επεξεργαστών, των καναλιών επικοινωνίας Επομένως οι κατανεμημένοι αλγόριθμοι μπορεί να είναι περίπλοκοι: Δύσκολο να σχεδιαστούν Δύσκολο να αναλυθούν ως προς την πολυπλοκότητα και ως προς την ορθότητά τους
Προαπαιτούμενα Επιθυμητές γνώσεις: Σχεδίαση και ανάλυση αλγορίθμων (απόδειξη ορθότητας και πολυπλοκότητας) Τυπικές μαθηματικές αποδείξεις Διακριτά μαθηματικά, Πιθανότητες Σχέση με άλλα μαθήματα: Εισαγωγή στους Αλγορίθμους Δίκτυα Υπολογιστών Λειτουργικά Συστήματα Παράλληλα Συστήματα Αλγόριθμοι και Συνδυαστική Βελτιστοποίηση Αλγοριθμικές Θεμελιώσεις Δικτύων Αισθητήρων
Δίκτυα Υπολογιστών Κατανεμημένα Συστήματα Μαθήματα που σχετίζονται με τα Δίκτυα Υπολογιστών: Μας ενδιαφέρει πώς πραγματοποιείται η μεταφορά μηνυμάτων Δεν μας ενδιαφέρει πώς επεξεργαζόμαστε τα πακέτα Στο μάθημα των Κατανεμημένων Συστημάτων: Υποθέτουμε ότι υπάρχει ένας μηχανισμός αποστολής/παραλαβής μηνυμάτων Εστιάζουμε στις ιδιότητες των μηνυμάτων Σχεδιάζουμε συστήματα που χρησιμοποιούν αυτά τα μηνύματα
Λειτουργικά Συστήματα Κατανεμημένα Συστήματα Μαθήματα που σχετίζονται με τα Λειτουργικά Συστήματα: Οι πόροι είναι αξιόπιστοι Χειριζόμαστε τους πόρους χωρίς να μελετάμε περιπτώσεις σφαλμάτων Τα σφάλματα είναι τοπικά και αντιμετωπίζονται εύκολα πχ με επανεκκίνηση Δεν υπάρχουν προβλήματα συγχρονισμού υπάρχει ένα καθολικό ρολόι Στο μάθημα των Κατανεμημένων Συστημάτων: Η επικοινωνία μέσω δικτύου δεν είναι πάντα αξιόπιστη Μπορεί να μην γνωρίζουμε αν έχει συμβεί κάποιο σφάλμα Δεν υπάρχει ένα καθολικό ρολόι πώς συγχρονίζονται οι διεργασίες;
Παράλληλα Συστήματα Κατανεμημένα Συστήματα Στα Παράλληλα Συστήματα: Οι πολλαπλοί επεξεργαστές είναι τοποθετημένοι στην ίδια υπολογιστική μονάδα Η επικοινωνία μεταξύ των επεξεργαστών είναι γρήγορη Δεν υπάρχουν προβλήματα συγχρονισμού υπάρχει ένα καθολικό ρολόι Οι υπολογιστικές μονάδες είναι υψηλής ποιότητας σπάνια αποτυγχάνουν Στο μάθημα των Κατανεμημένων Συστημάτων: Η επικοινωνία μέσω δικτύου δεν είναι πάντα γρήγορη Δεν υπάρχει ένα καθολικό ρολόι πως συγχρονίζονται οι διεργασίες; Οι μονάδες δεν είναι απαραίτητο να προσφέρουν υψηλή αξιοπιστία
Το μάθημα Θεωρητική, μαθηματική προσέγγιση Καθορισμός μοντέλων κατανεμημένου υπολογισμού Ορισμός γενικών προβλημάτων Σχεδιασμός αλγορίθμων που επιλύουν αυτά τα προβλήματα Ανάλυση πολυπλοκότητας Καθορισμός έμφυτων περιορισμών, απόδειξη ορίων, impossibility results
Ύλη του μαθήματος Βασικά θέματα κατανεμημένου υπολογισμού: Επικοινωνία: ποιο είναι το κόστος; Συντονισμός: πώς συντονίζεται το σύστημα; Ανοχή σε σφάλματα: πόσο ανεκτικό είναι σε σφάλματα διεργασιών/επικοινωνίας; Τοπικότητα: πόσο απαραίτητη είναι η καθολική πληροφορία; Παραλληλισμός: πόσο γρηγορότερα μπορεί να βρεθεί μια λύση αν έχουμε περισσότερους κόμβους; Διάσπαση της συμμετρίας: πώς επιλέγεται ένας συγκεκριμένος κόμβος/διεργασία για να επιτελέσει κάποια συγκεκριμένη λειτουργία; Συγχρονισμός: πώς υλοποιείται ένας σύγχρονος αλγόριθμος σε ένα ασύγχρονο περιβάλλον; Αβεβαιότητα: πώς αντιμετωπίζεται η άγνοια που έχει κάποιος κόμβος για την κατάσταση του υπόλοιπου δικτύου;
Ύλη του μαθήματος Διαφορετικά μοντέλα κατανεμημένων συστημάτων με βάση: Τον τρόπο επικοινωνίας: διαμοιραζόμενη μνήμη ή μέσω μηνυμάτων Το χρονισμό: σύγρονα (σε γύρους) ή ασύγχρονα ή μερικώς σύγχρονα Την παρουσία σφαλμάτων: αστοχίες στις διεργασίες (διακοπή λειτουργίας, Βυζαντινά σφάλματα) ή στην επικοινωνία (απώλεια μηνυμάτων)
Συγκεκριμένα θέματα Σύγχρονα κατανεμημένα συστήματα: Το μοντέλο των Σύγχρονων Κατανεμημένων Συστημάτων Σφάλματα επικοινωνίας, τερματικά σφάλματα και Βυζαντινά σφάλματα Πολυπλοκότητα επικοινωνίας και πολυπλοκότητα χρόνου Το πρόβλημα της εκλογής αρχηγού Εκλογή αρχηγού σε σύγχρονο δακτύλιο: οι αλγόριθμοι LCR και HS Εκλογή αρχηγού σε γενικά δίκτυα: οι αλγόριθμοι FloodMax και OptFloodMax Το πρόβλημα της αναζήτησης πρώτα κατά πλάτος (BFS) Ο αλγόριθμος SynchBFS, παραλλαγές και εφαρμογές του
Συγκεκριμένα θέματα Σύγχρονα κατανεμημένα συστήματα: Συναίνεση σε σύγχρονα κατανεμημένα συστήματα Ο αλγόριθμος SimpleConsensus Το πρόβλημα της συναίνεσης με σφάλματα επικοινωνίας Το πρόβλημα της συντονισμένη επίθεσης, ντετερμινιστική εκδοχή και πιθανοτικός αλγόριθμος Το πρόβλημα της συναίνεσης με σφάλματα διεργασιών: αλγόριθμος FloodSet Το πρόβλημα της επικύρωσης δοσοληψιών: αλγόριθμοι TwoPhaseCommit και ThreePhaseCommit
Συγκεκριμένα θέματα Ασύγχρονα κατανεμημένα συστήματα: Το μοντέλο των Ασύγχρονων Κατανεμημένων Συστημάτων Εκλογή αρχηγού σε ασύγχρονο δακτύλιο Κατασκευή επικαλυπτικού δένδρου σε ασύγχρονο δίκτυο Εκπομπή (broadcast): ο αλγόριθμος της πλημμύρας (flooding) και ο αλγόριθμος της ηχούς (echo) Ανάλυση και εφαρμογές της τεχνικής flooding/echo Ασύγχρονη κατασκευή BFS και MST: αλγόριθμοι Dijkstra, Bellman-Ford και Gallager Humblet Spira Το πρόβλημα του χρωματισμού των κορυφών ενός γραφήματος Κατασκευή ανεξάρτητου συνόλου και κυρίαρχου συνόλου: άπληστος και πιθανοτικός αλγόριθμος
Συγκεκριμένα θέματα Ασύγχρονα κατανεμημένα συστήματα: Διάταξη γεγονότων και λογικός χρόνος Διάταξη γεγονότων, η σχέση συνέβη-πριν Λογικός χρόνος, λογικά ρολόγια Lamport Αμοιβαίος αποκλεισμός
Τυπικά θέματα Διαλέξεις κάθε Πέμπτη, 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) και άλλων (και των μαθημάτων που διδάσκουν)
Απορίες Συναντήσεις Λίστα ταχυδρομείου: ds-list@ceidupatrasgr Εγγραφή στη λίστα: κενό μήνυμα στο ds-list-subscribe@ceidupatrasgr Για οτιδήποτε χρειαστείτε επικοινωνείτε μέσω e-mail: panagopp@ceidupatrasgr