Μοντέλο Σύγχρονου ικτύου. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Σχετικά έγγραφα
Μοντέλο Σύγχρονου ικτύου. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Κατανεμημένα Συστήματα Ι

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Υποστήριξη Φοιτητών

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Υποστήριξη Φοιτητών

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Σύνοψη 3 ης ιάλεξης

Γενικά. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Βασικοί Ορισµοί

Σκοπός του µαθήµατος. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Σκοπός του µαθήµατος. Κατανεµηµένα συστήµατα. Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Κατανεμημένα Συστήματα Ι

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Κατανεμημένα Συστήματα Ι

Το Πρόβληµα της Συναίνεσης. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Παρουσία σφαλµάτων

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

Consensus and related problems

Κατανεμημένα Συστήματα Ι

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Ανοχή απέναντι σε Σφάλµατα Fault Tolerance

Κατανεμημένα Συστήματα Ι

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Η σχέση συνέβη-πριν

Σύνοψη Μαθήµατος. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Η σχέση συνέβη-πριν

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Η σχέση συνέβη-πριν

Κατανεμημένα Συστήματα Ι

Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Σύνοψη Μαθήµατος. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Βυζαντινοί Στρατηγοί

Ανοχήβλαβών. Κατανεµηµένα Συστήµατα 19-1

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Σύνοψη Προηγούµενου Μαθήµατος. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Εκλογή αρχηγού σε σύγχρονο δακτύλιο: Οι αλγόριθμοι LCR και HS. 1 Ο αλγόριθμος LCR (Le Lann, Chang, and Roberts)

Εκλογήαρχηγού. Εισαγωγή Ισχυρά συνδεδεµένος γράφος ακτύλιος µίας κατεύθυνσης Τοπολογία δένδρου. Κατανεµηµένα Συστήµατα 06-1

Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 5: Ανοχή βλαβών Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Γενικά. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Τυπικά Θέµατα.

ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε:

Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Σύνοψη Μαθήµατος. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Διάλεξη 17: Συμφωνία με Βυζαντινά Σφάλματα. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 18: Πρόβλημα Βυζαντινών Στρατηγών. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι


Διάλεξη 5: Κάτω Φράγμα για Αλγόριθμους Εκλογής Προέδρου. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Κατανεμημένα Συστήματα με Java. Ενότητα # 4: Αμοιβαίος αποκλεισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κεφάλαιο 2. Παραγοντοποίηση σε Ακέραιες Περιοχές

Κατανεμημένα Συστήματα Ι

Μια TM µπορεί ένα από τα δύο: να αποφασίζει µια γλώσσα L. να αναγνωρίζει (ηµιαποφασίζει) µια γλώσσα L. 1. Η TM «εκτελεί» τον απαριθµητή, E.

Καθολικέςκαταστάσεις. Ορισµοί Κατασκευή καθολικών καταστάσεων Παθητική στρατηγική Ενεργητική στρατηγική. Κατανεµηµένα Συστήµατα 04-1

Αρµονική Ανάλυση. Ενότητα: Το ϑεώρηµα παρεµβολής του Riesz και η ανισότητα Hausdorff-Young. Απόστολος Γιαννόπουλος.

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Αυτόµατα Εισόδου/Εξόδου

2 o Καλοκαιρινό σχολείο Μαθηµατικών Νάουσα 2008

Κατευθυνόµενα γραφήµατα. Στοιχεία Θεωρίας Γραφηµάτων (1) Πολυγραφήµατα (Multigraphs)

Διάλεξη 4: Εκλογή Προέδρου σε Δακτύλιους. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Σύνοψη Μαθήµατος. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

3 Αναδροµή και Επαγωγή

Στοιχεία Θεωρίας Αριθμών και Εφαρμογές στην Κρυπτογραφία. Fast Asynchronous Byzantine Agreement with Optimal Resilience

Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές» (ε) Κάθε συγκλίνουσα ακολουθία άρρητων αριθµών συγκλίνει σε άρρητο αριθµό.

Γ. Κορίλη Αλγόριθµοι ροµολόγησης

Κατανεμημένη συμφωνία (distributed consensus) Κατανεμημένα Συστήματα 1

Στοιχεία Θεωρίας Γραφηµάτων (1)

Μονοπάτια και Κυκλώµατα Euler. Στοιχεία Θεωρίας Γραφηµάτων (3,4) Παραδείγµατα. Κριτήρια Υπαρξης.

ιακριτά Μαθηµατικά και Μαθηµατική Λογική ΠΛΗ20 Ε ρ γ α σ ί α 3η Θεωρία Γραφηµάτων

Ακρότατα υπό συνθήκη και οι πολλαπλασιαστές του Lagrange

Κατανεμημένα Συστήματα. Ενότητα # 2: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 4

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 2

Αλγόριθμοι και Πολυπλοκότητα

Διάλεξη 6: Εκλογή Προέδρου σε Σύγχρονους Δακτύλιους. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ

Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Θεωρητικά Θέµατα. Ι. Θεωρία Οµάδων. x R y ή x R y ή x y(r) [x] R = { y X y R x } X. Μέρος Σχέσεις Ισοδυναµίας, ιαµερίσεις, και Πράξεις

Στοιχεία Θεωρίας Γραφηµάτων (3)

Απαρίθµηση Μονοπατιών. Στοιχεία Θεωρίας Γραφηµάτων (3) Μονοπάτια και Κυκλώµατα Euler. Ορέστης Τελέλης

Συνεκτικά σύνολα. R είναι συνεκτικά σύνολα.

ιαδίκτυα & Ενδοδίκτυα Η/Υ

Απαντήσεις. Απάντηση. Απάντηση

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 2

1 Συνοπτική ϑεωρία. 1.1 Νόµοι του Προτασιακού Λογισµού. p p p. p p. ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Τµήµα Επιστήµης Υπολογιστών

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

Χαρακτηρισµός Κατανεµηµένων Συστηµάτων

Γενικά. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Ορισµός Κατανεµηµένου Συστήµατος (1)

f (x) = l R, τότε f (x 0 ) = l. = lim (0) = lim f(x) = f(x) f(0) = xf (ξ x ). = l. Εστω ε > 0. Αφού lim f (x) = l R, υπάρχει δ > 0

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 8

Μη κατευθυνόµενα γραφήµατα. Στοιχεία Θεωρίας Γραφηµάτων (1) Υπογραφήµατα.

Outlook Express-User Instructions.doc 1

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

Κινητά και Διάχυτα Συστήματα. Ενότητα # 8: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ

Διδάσκων: Καθηγητής Νικόλαος Μαρμαρίδης, Καθηγητής Ιωάννης Μπεληγιάννης

Παρεµβολή και Προσέγγιση Συναρτήσεων

Υπολογιστικό Πρόβληµα

ροµολόγηση πακέτων σε δίκτυα υπολογιστών

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοηµοσύνη Ι» 7ο Φροντιστήριο 15/1/2008

Transcript:

Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Ιωάννης Χατζηγιαννάκης Μοντέλο Σύγχρονου ικτύου Μία συλλογή υπολογιστικών µονάδων ή επεξεργαστές κάθε επεξεργαστής εκτελεί µόνο µία διεργασία Οι µονάδες του συστήµατος είναι συνδεδεµένες µε ένα σύγχρονο δίκτυο Ορίζουµε το σύγχρονο δίκτυο ως ένα κατευθυνόµενο γράφηµα G = (V, E) αποτελείτε από n = V κορυφές και m = E ακµές Υποθέτουµε ότι κάθε κανάλι επικοινωνίας µπορεί να δεχτεί µόνο ένα µήνυµα τη ϕορά τα κανάλια είναι οι ακµές του γραφήµατος Θεωρούµε ότι υπάρχει ένα δεδοµένο αλφάβητο M µηνυµάτων ευτέρα, 11 Νοεµβρίου, 2013 Αίθουσα Β3 Οι Καταστάσεις των ιεργασιών Κάθε διεργασία u V χαρακτηρίζεται από ένα σύνολο καταστάσεων states u Ορισµένες τις ονοµάζουµε αρχικές καταστάσεις start u Ορισµένες τις ονοµάζουµε καταστάσεις τερµατισµού halt u ιαθέτει µια γεννήτρια εξερχόµενων µηνυµάτων msgs u : states u nbrsu out M {null} δεδοµένης της τρέχουσας κατάστασης δηµιουργεί κάποια µηνύµατα για τις γειτονικές διεργασίες ιαθέτει µία συνάρτηση αλλαγής κατάστασης trans u : states u (M {null}) nbrsin u states u δεδοµένης της τρέχουσας κατάστασης τα µηνύµατα που παραλήφθηκαν υπολογίζει την επόµενη κατάσταση της διεργασίας Εναρξη εκτέλεσης, Βήµατα και Γύροι Αρχικά όλες οι διεργασίες ϐρίσκονται σε κάποια αρχική κατάσταση όλα τα κανάλια είναι άδεια Ολες οι διεργασίες, επαναλαµβάνουν συντονισµένα τα ακόλουθα δύο ϐήµατα: 1 o Βήµα 1. Εφαρµογή της γεννήτριας µηνυµάτων 2. Παραγωγή µηνυµάτων για τους εξερχόµενους γείτονες 3. Αποστολή µηνυµάτων µέσω των αντίστοιχων καναλιών 2 o Βήµα 1. Εφαρµογή της συνάρτησης αλλαγής κατάστασης 2. ιαγραφή όλων των µηνυµάτων από τα κανάλια. Ο συνδυασµός των δύο ϐηµάτων ονοµάζεται γύρος

Μέτρηση πολυπλοκότητας Σχεδιασµός Συστήµατος Ορισµός Ελάχιστων Απαιτήσεων Επιλογή κατάλληλου κατανεµηµένου αλγόριθµου Πως µπορούµε να µετρήσουµε την απόδοση; Χρονική πολυπλοκότητα Το πλήθος των γύρων που απαιτούνται για να παραχθούν όλες οι Ϲητούµενες έξοδοι, ή µέχρι να τερµατιστούν όλες οι διεργασίες (δηλ. να ϐρεθούν σε µια τερµατική κατάσταση). Πολυπλοκότητα επικοινωνίας Ο συνολικός αριθµός µη µηδενικών µηνυµάτων (δηλ. δεν προσµετρούνται τα null µηνύµατα) που αποστέλλονται. Γενικά Πρόβληµα Συναίνεσης Σε ένα σύγχρονο δίκτυο G, η συναίνεση απαιτεί την κοινή επιλογής µιας µοναδικής τιµής απο όλες τις διεργασίες του συστήµατος. Οταν οι διεργασίες καταλήξουν σε µια κοινά αποδεκτή απόφαση, όλες οι διεργασίες τερµατίζουν. Οι διεργασίες ξεκινούν µε µία αρχική τιµή, την επεξεργάζονται και εξάγουν µια τελική τιµή εκτελούν έναν κατανεµηµένο αλγόριθµο συναίνεσης αποφασίζουν απο κοινού µια µοναδική τιµή Η απόφαση είναι κοινή π.χ. µια διεργασία µε τιµή ναι, πως µπορεί να δεχτεί µια κοινή απόφαση όχι ; Ορισµός Προβλήµατος Υποθέτουµε ένα δίκτυο από n διεργασίες, συνδεδεµένες από ένα µη-κατευθυνόµενο γράφηµα, όπου κάθε διεργασία γνωρίζει τη δοµή του γραφήµατος. Κάθε διεργασία u δέχεται ως είσοδο µία τιµή i u απο το σύνολο S, δηλ. i u S Ενας αλγόριθµος λύνει το πρόβληµα συναίνεσης εφόσον πληροί τις παρακάτω προδιαγραφές: 1. Συµφωνία: Κανένα Ϲεύγος διεργασιών δεν αποφασίζει διαφορετικές τιµές εξόδου, δηλ. u, v : o u o v 2. Εγκυρότητα: Αν όλες οι διεργασίες αρχίζουν µε την ίδια τιµή i S δηλ. u [1, n] : i u = i, τότε η τιµή i είναι η µόνη πιθανή τελική απόφαση, δηλ. u [1, n] : o u = i 3. Τερµατισµός: Ολες οι διαδικασίες τελικά αποφασίζουν Παρουσία σφαλµάτων Τι συµβαίνει όταν κατά την εκτέλεση ενός κατανεµηµένου αλγορίθµου 1. παρουσιάζονται σφάλµατα κατά την αποστολή µηνυµάτων 2. σφάλµατα που παρουσιάζονται στις υπολογιστικές µονάδες (στους επεξεργαστές) Υπό την παρουσία σφαλµάτων µπορούµε να εγγυηθούµε την ορθότητα του αλγορίθµου SimpleConsensus ; να εντοπίσουµε µια αποτυχία; να αντιµετωπίσουµε µια αποτυχία;

Αδυναµία Εύρεσης Λύσης Θεώρηµα Εστω σύγχρονο δίκτυο G που αποτελείτε από δύο διεργασίες V = {u, v} συνδεδεµένες από µια µη-κατευθυνόµενη ακµή uv. εν υπάρχει αλγόριθµος που να λύνει το πρόβληµα της συναίνεσης υπό την παρουσία σφαλµάτων επικοινωνίας. Βασικός περιορισµός στις δυνατότητες των κατανεµηµένων δικτύων Για να ξεπεραστεί πρέπει να κάνουµε πιο ισχυρό το µοντέλο Υποθέτουµε ότι ένας ϕραγµένος αριθµός µηνύµατα χάνονται Υποθέτουµε ότι τα µηνύµατα χάνονται µε πιθανότητα p Για να ξεπεραστεί πρέπει να κάνουµε πιο ασθενές το πρόβληµα Επιτρέπουµε την παραβίαση της συνθήκης της συµφωνίας υπό ορισµένες συνθήκες Επιτρέπουµε την παραβίαση της συνθήκης της εγκυρότητας υπό ορισµένες συνθήκες Μοντέλο Σφαλµάτων Επικοινωνίας Εξετάζουµε την περίπτωση όπου κατά την εκτέλεση ενός κατανεµηµένου αλγορίθµου παρουσιάζονται σφάλµατα κατά την αποστολή µηνυµάτων Σφάλµα Επικοινωνίας Το δίκτυο επικοινωνίας που συνδέει τις µονάδες ενός κατανεµηµένου συστήµατος µπορεί να αποτύχει κατά την αποστολή ενός µηνύµατος µέσω ενός (ελαττωµατικού) καναλιού. Η παράδοση των µηνυµάτων που έχουν σταλεί δεν είναι εγγυηµένη. Υποθέτουµε ότι ένας αριθµός µηνυµάτων που ϑα αποσταλούν κατά την εκτέλεση ενός κατανεµηµένου αλγορίθµου, δεν ϑα παραδοθούν µε επιτυχία. Μοντέλο Σφαλµάτων Τερµατισµού Εξετάζουµε την περίπτωση όπου κατά την εκτέλεση ενός κατανεµηµένου αλγορίθµου σφάλµατα που παρουσιάζονται στις υπολογιστικές µονάδες (στους επεξεργαστές) εµφανίζονται το πολύ σ σφάλµατα Σφάλµα Τερµατισµού Κάποια (ελαττωµατική) µονάδα του κατανεµηµένου συστήµατος µπορεί να αποτύχει κατά την εκτέλεση µια διεργασίας. Ενα σφάλµα τερµατισµού µπορεί να παρουσιαστεί σε οποιοδήποτε σηµείο της εκτέλεσης µιας διεργασίας. Η διεργασία µπορεί να τερµατίσει ξαφνικά κατά την παραγωγή µηνυµάτων, οπότε να σταλεί µόνο ένα µέρος των εξερχόµενων µηνυµάτων. Σύνοψη 5 ης ιάλεξης Προηγούµενο Μάθηµα Πρόβληµα Συναίνεσης Σφάλµατα Επικοινωνίας / Τερµατισµού Πρόβληµα Συναίνεσης Σφάλµατα Τερµατισµού Επικύρωση οσοληψιών Βυζαντινά Σφάλµατα Σύνοψη Μαθήµατος Σύνοψη Μαθήµατος Επόµενο Μάθηµα 2η Ασκηση

Μοντέλο Σφαλµάτων Τερµατισµού Εξετάζουµε την περίπτωση όπου κατά την εκτέλεση ενός κατανεµηµένου αλγορίθµου σφάλµατα που παρουσιάζονται στις υπολογιστικές µονάδες (στους επεξεργαστές) εµφανίζονται το πολύ σ σφάλµατα Σφάλµα Τερµατισµού Κάποια (ελαττωµατική) µονάδα του κατανεµηµένου συστήµατος µπορεί να αποτύχει κατά την εκτέλεση µια διεργασίας. Ενα σφάλµα τερµατισµού µπορεί να παρουσιαστεί σε οποιοδήποτε σηµείο της εκτέλεσης µιας διεργασίας. Η διεργασία µπορεί να τερµατίσει ξαφνικά κατά την παραγωγή µηνυµάτων, οπότε να σταλεί µόνο ένα µέρος των εξερχόµενων µηνυµάτων. Ο Αλγόριθµος FloodSet Αλγόριθµος Συναίνεσης FloodSet Κάθε διεργασία u [1, n] διατηρεί µια λίστα l u µε τιµές εισόδου, η οποία αρχικά περιέχει ένα µόνο την τιµή εισόδου i u S της u, l u = {i u }. Σε κάθε γύρο, οι διεργασίες εκπέµπουν την λίστα l σε όλους τους γείτονες. Μόλις λάβουν µία λίστα l v απο κάποιον γείτονα v, την ενοποιούν µε την δικιά τους. Μετά απο σ + 1 γύρους, αν η λίστα l u περιέχει µία µόνο τιµή ( l u = 1) η διεργασία u αποφασίζει την τιµή που περιέχει η λίστα αλλιώς αποφασίζει την προκαθορισµένη τιµή p S. Το γράφηµα G είναι πλήρες Γνωρίζουν το συνολικό αριθµό σφαλµάτων σ Συµβολίζουµε µε l u (γ) την τιµή της λίστας l u που διατηρεί η διεργασία u τον γύρο γ Παράδειγµα Εκτέλεσης Αλγόριθµου FloodSet Εστω ένα σύγχρονο πλήρες δίκτυο όπου n = 4 και σ = 2 Οι διεργασίες έχουν µια τιµή εισόδου (ϱοζ κουτί) Οι διεργασίες διατηρούν µια λίστα (µπλέ κουτί) Οι διεργασίες έχουν µια τιµή εξόδου (κίτρινο κουτί) Πλήρως Συνδεδεµένο ίκτυο Παράδειγµα Εκτέλεσης Αλγόριθµου FloodSet Εστω ένα σύγχρονο πλήρες δίκτυο όπου n = 4 και σ = 2 Οι διεργασίες έχουν µια τιµή εισόδου (ϱοζ κουτί) Οι διεργασίες διατηρούν µια λίστα (µπλέ κουτί) Οι διεργασίες έχουν µια τιµή εξόδου (κίτρινο κουτί) 1ος Γύρος σφάλµα στην διεργασία 3

Παράδειγµα Εκτέλεσης Αλγόριθµου FloodSet Εστω ένα σύγχρονο πλήρες δίκτυο όπου n = 4 και σ = 2 Οι διεργασίες έχουν µια τιµή εισόδου (ϱοζ κουτί) Οι διεργασίες διατηρούν µια λίστα (µπλέ κουτί) Οι διεργασίες έχουν µια τιµή εξόδου (κίτρινο κουτί) 2ος Γύρος σφάλµα στην διεργασία 4 Παράδειγµα Εκτέλεσης Αλγόριθµου FloodSet Εστω ένα σύγχρονο πλήρες δίκτυο όπου n = 4 και σ = 2 Οι διεργασίες έχουν µια τιµή εισόδου (ϱοζ κουτί) Οι διεργασίες διατηρούν µια λίστα (µπλέ κουτί) Οι διεργασίες έχουν µια τιµή εξόδου (κίτρινο κουτί) 3ος Γύρος κανένα σφάλµα Παράδειγµα Εκτέλεσης Αλγόριθµου FloodSet Εστω ένα σύγχρονο πλήρες δίκτυο όπου n = 4 και σ = 2 Οι διεργασίες έχουν µια τιµή εισόδου (ϱοζ κουτί) Οι διεργασίες διατηρούν µια λίστα (µπλέ κουτί) Οι διεργασίες έχουν µια τιµή εξόδου (κίτρινο κουτί) 3ος Γύρος απόφαση Χαρακτηριστικά του Αλγόριθµου FloodSet (1) Λήµµα (FloodSet.1) Αν καµία διεργασία δεν αντιµετωπίσει ένα σφάλµα τερµατισµού κατά τον γύρο γ, 1 γ σ + 1, τότε για κάθε Ϲεύγος διεργασιών u, v, που δεν έχει αντιµετωπίσει κάποιο σφάλµα µετά από γ γύρους, l u (γ) = l v (γ). Απόδειξη: Εστω C το σύνολο των διεργασιών που δεν έχουν αντιµετωπίσει σφάλµα µετά από γ 1 γύρους. Εστω ότι κανένα σφάλµα δεν εµφανίζεται τον γύρο γ. Τότε u C Αρα στον γύρο γ, ϑα στείλει την l u (γ 1) σε όλες τις άλλες. u C, l u (γ) = v C l v (γ 1)

Χαρακτηριστικά του Αλγόριθµου FloodSet (2) Λήµµα (FloodSet.2) Εστω ότι για κάθε Ϲεύγος διεργασιών u, v, που δεν έχει αντιµετωπίσει κάποιο σφάλµα µετά από γ γύρους, l u (γ) = l v (γ). Τότε σε κάθε γύρο γ, γ γ σ + 1, για κάθε Ϲεύγος διεργασιών u, v που δεν έχει αντιµετωπίσει κάποιο σφάλµα µετά από γ γύρους, l u (γ ) = l v (γ ). Απόδειξη: Ολες οι διεργασίες που δεν έχει αντιµετωπίσει κάποιο σφάλµα µετά από γ γύρους έχουν στείλει την τιµή τους Οι διεργασίες που δεν έχουν αντιµετωπίσει κάποιο σφάλµα µετά από γ γύρους έχουν ίδιες λίστες Καµία άλλη ενεργή διεργασία δεν υπάρχει µετά τον γύρο γ δεν ϑα εµφανιστεί κάποια νέα τιµή Αρα η τιµή της l u, u C δεν ϑα αλλάξει σε επόµενους γύρους Χαρακτηριστικά του Αλγόριθµου FloodSet (3) Λήµµα (FloodSet.3) Εστω ένα Ϲεύγος διεργασιών u, v, που δεν έχει αντιµετωπίσει κάποιο σφάλµα µετά από σ + 1 γύρους, τότε l u (σ + 1) = l v (σ + 1) στο τέλος του γύρου σ + 1. Απόδειξη: Εφόσον παρουσιάζονται το πολύ σ σφάλµατα υπάρχει κάποιος γύρος γ, 1 γ σ + 1 όπου καµία διεργασία δεν αντιµετωπίζει σφάλµα Σύµφωνα µε το Λήµµα FloodSet.1 l u (γ) = l v (γ) για κάθε u, v που δεν έχουν αντιµετωπίσει σφάλµα µετά από γ γύρους Σύµφωνα µε το Λήµµα FloodSet.2 l u (σ + 1) = l v (σ + 1) για κάθε u, v που δεν έχουν αντιµετωπίσει σφάλµα µετά από σ + 1 γύρους Χαρακτηριστικά του Αλγόριθµου FloodSet (4) Θεώρηµα Ο αλγόριθµος FloodSet λύνει το πρόβληµα της συναίνεσης Απόδειξη: Η συνθήκη τερµατισµού ικανοποιείται όλες οι διεργασίες που δεν αντιµετώπισαν σφάλµα µέχρι το τέλος του γύρου σ + 1 τερµατίζουν Η συνθήκη εγκυρότητας ικανοποιείται Αν όλες οι διεργασίες έχουν αρχική τιµή τ τότε η µοναδική τιµή που στέλνεται είναι η {τ} Η λίστα l u δεν ϑα αλλάξει µέχρι το τέλος του γύρου σ + 1 Η συνθήκη συµφωνίας ικανοποιείται Σύµφωνα µε Λήµµα FloodSet.3 Χαρακτηριστικά του Αλγόριθµου FloodSet (5) Η χρονική πολυπλοκότητα είναι σ + 1 γύροι Η πολυπλοκότητα επικοινωνίας είναι O ( (σ + 1) n 2) Το κάθε µήνυµα µπορεί να έχει µέγεθος O (n) bit Η πολυπλοκότητα επικοινωνίας είναι O ( (σ + 1) n 3) bit Παραλλαγές Αντί για την προκαθορισµένη τιµή p S, επιλέγετε η min(s) Οι διεργασίες στέλνουν µόνο όταν υπάρχουν αλλαγές στην λίστα, µετά την επεξεργασία των µηνυµάτων (OptFloodSet)

Επικύρωση οσοληψιών (1) Πρόβληµα Επικύρωσης οσοληψιών Οι διεργασίες του συστήµατος, συµµετέχουν στην διεκπεραίωση µιας δοσοληψίας. Η κάθε διεργασία, σύµφωνα µε τις τοπικές πληροφορίες εκφέρει µια άποψη για το αν η δοσοληψία πρέπει να επικυρωθεί δηλαδή η διεκπεραίωση της ήταν επιτυχής. Στην συνέχεια οι διεργασίες επικοινωνούν µεταξύ τους για να πάρουν µια κοινή απόφαση αν όλες συναινούν στην επικύρωση, τότε η δοσοληψία µπορεί να επικυρωθεί, αλλιώς όχι Οι πιθανές τιµές εισόδου/εξόδου µπορεί να είναι ναι και όχι δηλ. S = { ναι, όχι } Σε ένα σύστηµα µε πολλούς διακοµιστές ϐάσεων δεδοµένων, σε τακτά χρονικά διαστήµατα τα δεδοµένα ενοποιούνται οι διακοµιστές πρέπει να επικυρώσουν την δοσοληψία ενοποίησης Επικύρωση οσοληψιών (2) Θεωρούµε ότι οι διεργασίες λύνουν το πρόβληµα της επικύρωσης δοσοληψιών όταν ικανοποιούνται οι τρεις συνθήκες: 1. Συµφωνία: Κανένα Ϲεύγος διεργασιών δεν αποφασίζει διαφορετικές τιµές εξόδου, δηλ. u, v : o u o v 2. Εγκυρότητα: Αν υπάρχει µια διεργασία u µε τιµή i u = όχι τότε η µοναδική αποδεκτή απόφαση είναι το όχι Αν u : i u = ναι και δεν παρουσιαστούν σφάλµατα, τότε η µοναδική αποδεκτή απόφαση είναι το ναι 3. Τερµατισµός: χαλαρός εάν δεν παρουσιαστούν σφάλµατα, όλες οι διεργασίες αποφασίζουν ισχυρός όλες οι διεργασίες που δεν αντιµετώπισαν κάποιο σφάλµα αποφασίζουν Ο Αλγόριθµος TwoPhaseCommit (1) Αλγόριθµος TwoPhaseCommit Η εκτέλεση του αλγορίθµου διεξάγετε σε δύο ϕάσεις: 1 η φάση -- Κάθε διεργασία u j, j (1, n], στέλνει στην διεργασία u 1 την αρχική τιµή i u. Στη συνέχεια, αν i u = όχι, αποφασίζει όχι. Η διεργασία u 1 συλλέγει όλα τα µηνύµατα, συνυπολογίζει την δικιά της αρχική τιµή i 1 και αποφασίζει o 1 = ναι µόνο όταν λάβει την τιµή ναι απο όλες τις διεργασίες, αλλιώς αποφασίζει o 1 = όχι 2 η φάση -- Η διεργασία u 1 στέλνει την τιµή o 1 σε όλες τις διεργασίες. Οποιες απο αυτές λάβουν το µήνυµα και δεν έχουν ήδη αποφασίσει απο το γύρο 1, αποφασίζουν το o 1 Υπάρχει µια προ-επιλεγµένη διεργασία (u 1 ) Ο Αλγόριθµος TwoPhaseCommit (2) Εκτέλεση του TwoPhaseCommit i 1 i 2 i 3 i 4 1 2 3 4 1 oς γύρος 2 oς γύρος ιάγραµµα µηνυµάτων εν παρουσιάζεται σφάλµα τερµατισµού στην εκτέλεση του παραδείγµατος Συνήθως πρίν από τον 1ο γύρο η διεργασία 1 ζητάει τις απόψεις των άλλων διεργασίών

Χαρακτηριστικά του Αλγόριθµου TwoPhaseCommit Ο αλγόριθµος TwoPhaseCommit λύνει το πρόβληµα της επικύρωσης δοσοληψιών υπό την χαλαρή συνθήκη τερµατισµού Αν παρουσιαστεί σφάλµα στην u 0 λίγο πριν πάρει την απόφαση στο τέλος της 1 ης ϕάσης κανείς δεν ϑα µάθει την απόφαση της u 0 Η χρονική πολυπλοκότητα είναι σταθερή 2 γύροι Η πολυπλοκότητα επικοινωνίας είναι O (n) Ο Αλγόριθµος ThreePhaseCommit (1) Αλγόριθµος ThreePhaseCommit Η εκτέλεση του αλγορίθµου ξεκινάει µε τρεις ϕάσεις: 1 η φάση -- Κάθε διεργασία u j, j (1, n], στέλνει στην διεργασία u 1 την αρχική τιµή i u. Στη συνέχεια, αν i u = όχι, αποφασίζει όχι. Η διεργασία u 1 συλλέγει τα µηνύµατα, συνυπολογίζει την i 1 και γίνεται έτοιµη µόνο όταν λάβει ναι απο όλες τις διεργασίες, αλλιώς αποφασίζει o 1 = όχι 2 η φάση -- Αν η διεργασία u 1 αποφάσισε o 1 = όχι στέλνει στις άλλες το µήνυµα άκυρη, αλλιώς στέλνει έτοιµη. Οποια διεργασία λάβει το µήνυµα άκυρη, αποφασίζει o u = όχι. Οποια διεργασία λάβει το µήνυµα έτοιµη, γίνεται έτοιµη. Αν η u 1 δεν έχει αποφασίσει έως τώρα, αποφασίζει o 1 = ναι. 3 η φάση -- Αν η διεργασία u 1 αποφάσισε o 1 = ναι στέλνει σε όλες τις διεργασίες το µήνυµα ναι. Οποια διεργασία λάβει το µήνυµα ναί, αποφασίζει o u = ναί. Υπάρχει µια προ-επιλεγµένη διεργασία (u 1 ) Ο Αλγόριθµος ThreePhaseCommit (2) Εκτέλεση του ThreePhaseCommit διάγραµµα µηνυµάτων i 1 i 2 i 3 i 4 1 2 3 4 1 oς γύρος 2 oς γύρος 3 oς γύρος... Κάθε διεργασία ϐρίσκεται σε µια και µόνο µια κατάσταση: 1. κ 0 -- έχει αποφασίσει o u = όχι 2. κ 1 -- έχει αποφασίσει o u = ναι 3. έτοιµη δεν έχει αποφασίσει αλλά είναι έτοιµη 4. άγνωστη δεν έχει αποφασίσει και δεν είναι έτοιµη Ο Αλγόριθµος ThreePhaseCommit (3) Λήµµα (ThreePhaseCommit.1) Μετά απο τρεις γύρους του αλγόριθµου ThreePhaseCommit τα ακόλουθα ισχύουν 1. Αν κάποια διεργασία ϐρίσκεται στην κατάσταση κ 1 ή έτοιµη, τότε οι αρχικές τιµές όλων των διεργασιών είναι ναι 2. Αν κάποια διεργασία ϐρίσκεται στην κατάσταση κ 0, τότε καµία διεργασία δεν είναι στην κατάσταση κ 1 και καµία ενεργή διεργασία δεν είναι στην κατάσταση έτοιµη 3. Αν κάποια διεργασία ϐρίσκεται στην κατάσταση κ 1, τότε καµία διεργασία δεν είναι στην κατάσταση κ 0, και καµία ενεργή διεργασία δεν είναι στην κατάσταση άγνωστη.

Ο Αλγόριθµος ThreePhaseCommit (4) Λήµµα (ThreePhaseCommit.2) Μετά απο τρεις γύρους του αλγόριθµου ThreePhaseCommit τα ακόλουθα ισχύουν 1. Η συνθήκη συµφωνίας 2. Η συνθήκη ορθότητας 3. Αν η διεργασία u 1 δεν παρουσίασε σφάλµα, τότε όλες οι ενεργές διεργασίες έχουν αποφασίσει. Απόδειξη: Η συνθήκη συµφωνίας προκύπτει από το Λήµµα ThreePhaseCommit.1. Η συνθήκη ορθότητας προκύπτει µερικώς απο το Λήµµα ThreePhaseCommit.1 -- αν κάποια διεργασία αρχίσει µε όχι, τότε όλες αποφασίζουν όχι εξέταση των υπόλοιπων περιπτώσεων Ο Αλγόριθµος ThreePhaseCommit (5) Αν η διεργασία u 1 δεν παρουσιάσει σφάλµα, τότε όλες οι ενεργές διεργασίες έχουν αποφασίσει. Η διεργασία u 1 αποφασίζει εφόσον δεν παρουσίασε σφάλµα Μεταδίδει την απόφαση της στις άλλες διεργασίες Οσες λάβουν το µήνυµα και δεν παρουσιάσουν σφάλµα, αποφασίζουν Οι τρείς πρώτες ϕάσεις δεν είναι αρκετές για να λυθεί το πρόβληµα υπό την ισχυρή συνθήκη τερµατισµού. Αν η διεργασία u 1 παρουσιάσει σφάλµα, µπορεί κάποιες άλλες διεργασίες να παραµήνουν στην κατάσταση άγνωστη. Οι διεργασίες εκτελούν ένα πρωτόκολλο τερµατισµού. Ο Αλγόριθµος ThreePhaseCommit (6) Αλγόριθµος ThreePhaseCommit 4 η φάση -- Οι διεργασίες στέλνουν την κατάσταση τους (κ 0, κ 1, έτοιµη, άγνωστη ) στην διεργασία u 2 η οποία τα τοποθετεί σε µία συλλογή. Αν η συλλογή: 1. περιέχει έστω µία τιµή κ 0 και η u 2 δεν έχει ακόµα αποφασίσει, αποφασίζει όχι 2. περιέχει µία τιµή κ 1 και η u 2 δεν έχει ακόµα αποφασίσει, αποφασίζει ναι 3. όλες οι τιµές είναι άγνωστη τότε η u 2 αποφασίζει όχι. 4. όλες οι τιµές είναι άγνωστη ή έτοιµη, αλλά περιέχει τουλάχιστον µία τιµή έτοιµη τότε η u 2 γίνεται έτοιµη Ο Αλγόριθµος ThreePhaseCommit (7) Αλγόριθµος ThreePhaseCommit 5 η φάση -- Αν η διεργασία u 2 αποφάσισε o 2 = όχι στέλνει στις άλλες το µήνυµα άκυρη, ενώ άν o 2 = ναι στέλνει στις άλλες το µήνυµα έγκυρη. Αν η u 2 δεν έχει αποφασίσει στέλνει έτοιµη. Οποια διεργασία λάβει το µήνυµα άκυρη ή έγκυρη, αποφασίζει αντίστοιχα όποια λάβει το µήνυµα έτοιµη γίνεται έτοιµη. Αν η u 2 δεν έχει αποφασίσει έως τώρα, αποφασίζει o 2 = ναι. 6 η φάση -- Αν η διεργασία u 2 αποφάσισε o 2 = ναι στέλνει σε όλες τις διεργασίες το µήνυµα έγκυρη. Οποια διεργασία λάβει το µήνυµα έγκυρη, και δεν έχει αποφασίσει ακόµα, ϑέτει o u = ναι. Στην συναίχεια το πρωτόκολλο ακολουθεί τρεις αντίστοιχες ϕάσεις συντονισµού για κάθε διεργασία u [3, n].

Χαρακτηριστικά του Αλγόριθµου ThreePhaseCommit Ο αλγόριθµος ThreePhaseCommit λύνει το πρόβληµα επικύρωσης δοσοληψιών και ικανοποιεί την ισχυρή συνθήκη τερµατισµού Με επαγωγή στον αριθµό των γύρων Σύµφωνα µε τα Λήµµατα ThreePhaseCommit.1, ThreePhaseCommit.2 Η χρονική πολυπλοκότητα είναι 3n γύροι O (n) Η πολυπλοκότητα επικοινωνίας είναι O ( n 2) Βυζαντινά Σφάλµατα Το δίκτυο περιέχει ελαττωµατικές διεργασίες που δεν σταµατούν αλλά συνεχίζουν να συµµετέχουν στην εκτέλεση του αλγορίθµου. Η συµπεριφορά των διεργασιών µπορεί να είναι τελείως ανεξέλεγκτη. Η εσωτερική κατάσταση µια ελαττωµατικής διεργασίες µπορεί να αλλάξει κατά την διάρκεια ενός γύρου χωρίς να υπάρχει κάποιο µήνυµα. Μια ελαττωµατική διεργασία µπορεί να στείλει µηνύµατα µε οποιοδήποτε περιεχόµενο, ανεξάρτητα από τις οδηγίες του κατανεµηµένου αλγορίθµου που ϑα έπρεπε να τρέχει. Ονοµάζουµε τέτοιου είδους σφάλµατα ως Βυζαντινά σφάλµατα. Μπορούµε να µοντελοποιήσουµε εχθρική συµπεριφορά (π.χ. ϑέµατα ασφάλειας). Βυζαντινοί Στρατηγοί Συντονισµένη Επίθεση 4 Βυζαντινών Στρατηγών Τέσσερις στρατηγοί διοικούν από ένα στρατό και Θέλουν να εισβάλουν συντονισµένα σε µια αντίπαλη πόλη. Ανάµεσα στους στρατηγούς υπάρχει και ένας προδότης. Ολοι οι πιστοί στρατηγοί πρέπει να συµφωνήσουν στο ίδιο πλάνο επίθεσης (ή υποχώρησης) ανεξάρτητα από τις κινήσεις του προδότη. Οι επικοινωνία µεταξύ των αρχηγών γίνεται µε ανταλλαγή µηνυµάτων. Ο προδότης έχει ελευθερία κινήσεων. Πρόβληµα συναίνεσης σε ένα σύστηµα µε n = 4 διεργασίες υπό την παρουσία ϐυζαντινών σφαλµάτων Οι πιθανές τιµές εισόδου/εξόδου µπορεί να είναι ναι και όχι δηλ. S = { ναι, όχι } Αποτύπωση Προβλήµατος Ο ένας στρατηγός αναλαµβάνει την διοίκηση όλων των στρατών. Ο αρχιστράτηγος πρέπει να στείλει µια εντολή στους n 1 στρατηγούς έτσι ώστε: 1. Ολοι οι πιστοί στρατηγοί πρέπει να ακολουθήσουν την ίδια εντολή (όλες οι µη ελαττωµατικές διεργασίες λαµβάνουν το ίδιο µήνυµα) 2. Αν ο αρχιστράτηγος είναι πιστός, τότε όλοι οι πιστοί στρατηγοί ακολουθούν τις εντολές του (Αν όλες οι διεργασίες είναι µη ελαττωµατικές τότε τα µηνύµατα που λαµβάνονται είναι ίδια µε αυτό που έστειλε η διεργασία συντονιστής) Οι παραπάνω συνθήκες είναι γνωστές ως συνθήκες συνεπής εκποµπής. Σηµείωση: Αν ο αρχιστράτηγος είναι πιστός, η 1η συνθήκη προκύπτει από την 2η. Οµως ο αρχιστράτηγος µπορεί να είναι προδότης.

Συζήτηση Προβλήµατος Μια λύση στο πρόβληµα των Βυζαντινών Στρατηγών επιτρέπει: 1. Αξιόπιστη επικοινωνία υπό την παρουσία ψευδών µηνυµάτων 2. Αξιόπιστη επικοινωνία υπό την παρουσία παράληψης µηνυµάτων Η αντιµετώπιση σφαλµάτων παράληψης (σφάλµατα τερµατισµού/επικοινωνίας) είναι η ποιό συνηθισµένη προσέγγιση. Ονοµάζουµε Βυζαντινά σφάλµατα όλα τα σφάλµατα που ανήκουν και στις δύο κατηγορίες. Ολες οι λύσεις στο πρόβληµα απαιτούν το πλήθος των διεργασιών να είναι τουλάχιστον τριπλάσιο των σφαλµάτων δηλ. n > 3σ. Είναι διαφορετικό από τα σφάλµατα τερµατισµού όπου το n και σ δεν είχαν κάποια σχέση. Ισως να ακούγεται υπερβολικό, καθότι γνωρίζουµε την τεχνική της triple-modular redundancy -- δηλ. n > 2σ + 1. Αδυναµία Εύρεσης Λύσης (1) Ας εξετάσουµε τις παρακάτω περιπτώσεις µε 3 στρατηγούς: Περίπτωση #1 Επίθεση Αρχιστράτηγος Επίθεση Στρατηγός 1 Στρατηγός 2 είπε υποχώρηση Περίπτωση #2 Επίθεση Αρχιστράτηγος Υποχώρηση Στρατηγός 1 Στρατηγός 2 είπε υποχώρηση Στην 1η περίπτωση, ο Στρατηγός 1 για να ικανοποιήσει την δεύτερη συνθήκη ϑα πρέπει να επιτεθεί 2η Συνθήκη Αν ο αρχιστράτηγος είναι πιστός, τότε όλοι οι πιστοί στρατηγοί ακολουθούν τις εντολές του Αδυναµία Εύρεσης Λύσης (2) Ας εξετάσουµε τις παρακάτω περιπτώσεις µε 3 στρατηγούς: Περίπτωση #2 Περίπτωση #1 Αρχιστράτηγος Αρχιστράτηγος Επίθεση Επίθεση Επίθεση Υποχώρηση Στρατηγός 1 Στρατηγός 2 είπε υποχώρηση Στρατηγός 1 Στρατηγός 2 είπε υποχώρηση Αδυναµία Εύρεσης Λύσης (3) Με ϐάση τα µηνύµατα που λαµβάνει ο Στρατηγός 1, σε κάθε περίπτωση οι δύο περιπτώσεις είναι ίδιες. Ο Στρατηγός 1 δεν µπορεί να διαφοροποιήσει τις δύο περιπτώσεις. εν υπάρχει καµία λύση για το πρόβληµα των ϐυζαντινών στρατηγών για την περίπτωση των 3 στρατηγών µε 1 προδότη. Γενίκευση της αδυναµίας εύρεσης λύσης: Καµία λύση µε λιγότερους από 3β + 1 στρατηγούς δεν µπορεί να αντιµετωπίσει β προδότες Στην 2η περίπτωση αν ο Στρατηγός 1 επιτεθεί τότε παραβιάζει την πρώτη συνθήκη 1η Συνθήκη Ολοι οι πιστοί στρατηγοί πρέπει να ακολουθήσουν την ίδια εντολή

Αλγόριθµος Lamport, Shostak και Pease (1) L. Lamport, R. Shostak, M. Pease: The Byzantine Generals Problem, ACM Transactions on Programming Languages and Systems, 4(3): pp 382-401, 1982. Ο αλγόριθµος κάνει τρεις υποθέσεις ως προς την επικοινωνία: 1. Ολα τα µηνύµατα που στέλνονται παραδίδονται σωστά 2. Ο παραλήπτης γνωρίζει ποιος είναι ο αποστολέας του µηνύµατος 3. Η απουσία ενός µηνύµατος µπορεί να εντοπιστεί Η 1η και 2η υπόθεση δεν επιτρέπει στον προδότη να παρεµβάλλεται στην επικοινωνία άλλων στρατηγών Η 3η υπόθεση αποτρέπει έναν προδότη να καθυστερήσει την επίθεση απλά επειδή δεν στέλνει µηνύµατα Σε δίκτυα υπολογιστών οι συνθήκες 1 και 2 υπονοούν ότι οι επεξεργαστές είναι συνδεδεµένοι απ ευθείας και ότι ένα σφάλµα επικοινωνίας συνυπολογίζεται στα β σφάλµατα Το µοντέλο των σύγχρονων ΚΣ ικανοποιεί και τις τρεις υποθέσεις Αλγόριθµος Lamport, Shostak και Pease (2) Εστω n διεργασίες και β σφάλµατα Οι διεργασίες έχουν µια προκαθορισµένη απόφαση o def που χρησιµοποιούν όταν ο αρχιστράτηγος είναι προδότης (π.χ. υποχώρηση) Ορίζουµε µια συνάρτηση majority(o 1,..., o n 1 ) = o όταν η πλειοψηφία των αποφάσεων o u = o Αλγόριθµος UM(n,0) (για 0 προδότες) 1. Ο αρχιστράτηγος στέλνει την απόφαση o σε όλους τους στρατηγούς 2. Οι στρατηγοί αποφασίζουν o ή αν δεν λάβουν κάποιο µήνυµα αποφασίζουν o def Αλγόριθµος Lamport, Shostak και Pease (3) Αλγόριθµος UM(n,β) (για β προδότες) 1. Ο αρχιστράτηγος στέλνει την απόφαση o σε όλους τους στρατηγούς 2. Για κάθε στρατηγό u Θέσε o u την τιµή που έλαβε από τον αρχιστράτηγο ή αν δεν λάβουν κάποιο µήνυµα, ϑέσε o def Στείλε την τιµή o u στους n 2 στρατηγούς µε τον UM(n-1,m-1) 3. Για κάθε στρατηγό u και κάθε v u Θέσε o v την τιµή που έλαβε από τον στρατηγό u που έλαβε στο ϐήµα 2 ή αν δεν έλαβε κάποιο µήνυµα, ϑέσε o def Αποφάσισε την τιµή majority(o 1,..., o n 1 ) Παράδειγµα Εκτέλεσης (1) n = 4, β = 1 -- Ο Σ3 είναι προδότης Α o o o Σ1 Σ2 Σ3 o o o o x y Σ2 Σ3 Σ1 Σ3 Σ1 Σ2 Στο τέλος της 1ης ϕάσης: Σ1 (o 1 = o), Σ2 (o 2 = o), Σ3 (o 3 = o) Στο τέλος της 2ης ϕάσης: Σ1 -- o 1 = o, o 2 = o, o 3 = x Σ2 -- o 1 = o, o 2 = o, o 3 = y Σ3 -- o 1 = o, o 2 = o, o 3 = o Στο τέλος της 2ης ϕάσης κάθε στρατηγός έχει λάβει ένα σύνολο τιµών και καταλήγει στο ίδιο συµπέρασµα λόγο της 1ης συνθήκης Η απόφαση του αρχιστράτηγου συµπίπτει µε την πλειοψηφία (2η συνθήκη)

Παράδειγµα Εκτέλεσης (2) n = 4, β = 1 -- Ο Α είναι προδότης x y Α Σ1 Σ2 Σ3 x x y y o def o def Σ2 Σ3 Σ1 Σ3 Σ1 Σ2 Στο τέλος της 1ης ϕάσης: Σ1 (o 1 = x), Σ2 (o 2 = y), Σ3 (o 3 = o def ) Στο τέλος της 2ης ϕάσης: Σ1 -- o 1 = x, o 2 = y, o 3 = o def Σ2 -- o 1 = x, o 2 = y, o 3 = o def Σ3 -- o 1 = x, o 2 = y, o 3 = o def Οι τρείς πιστοί στρατηγοί αποφασίζουν majority(x, y, o def ) και οι συνθήκες 1 και 2 ικανοποιούνται Ανάλυση Αλγόριθµου (1) Λήµµα Για κάθε m και k, ο UM(m) ικανοποιεί της 2η συνθήκη εφόσον υπάρχουν 2k + m στρατηγοί και το πολύ k προδότες Απόδειξη: (Με αναγωγή στο m) Στο 1ο ϐήµα, ο UM(0) λειτουργεί εφόσον ο αρχιστράτηγος είναι πιστός, δηλ. UM(0) ικανοποιεί την 2η συνθήκη. Ας υποθέσουµε ότι ο UM(m 1) ικανοποιεί την 2η συνθήκη για m > 0. Το αποδεικνύουµε για m: Στο 1ο ϐήµα ο πιστός στρατηγός στέλνει την τιµή o στους n 1 στρατηγούς. Στο 2ο ϐήµα όλοι οι πιστοί στρατηγοί εφαρµόζουν τον UM(m 1). Από την υπόθεση ισχύει ότι n > 2k + m ή n 1 > 2k + (m 1). Ανάλυση Αλγόριθµου (2) Από το ϐήµα αναγωγής που υποθέσαµε, κάθε πιστός στρατηγός u λαµβάνει o u = o v από κάθε πιστό στρατηγό v. Εφόσον υπάρχουν το πολύ k προδότες και n 1 > 2k + (m 1) 2k, δηλ. k < n 1 2 τότε η πλειοψηφία από τους n 1 είναι πιστοί. Εποµένως κάθε πιστός στρατηγός έχει o u = o για την πλειοψηφία των n 1 τιµών άρα στο 3ο ϐήµα, εφαρµόζοντας majority(o 1,..., o n 1 ) παίρνει o που ικανοποιεί την 2η συνθήκη. Ανάλυση Αλγόριθµου (3) Θεώρηµα Για κάθε m, ο UM(m) ικανοποιεί την 1η και 2η συνθήκη εφόσον υπάρχουν 3m στρατηγοί και το πολύ m προδότες Απόδειξη: (Με αναγωγή στο m) Αν δεν υπάρχουν προδότες είναι εύκολο να δούµε ότι µε την χρήση του αλγόριθµου, στο 1ο ϐήµα, οι συνθήκες 1 και 2 ικανοποιούνται. Ας υποθέσουµε ότι ο UM(m 1) ικανοποιεί τις συνθήκες 1 και 2 για m > 0. Το αποδεικνύουµε για m: Περίπτωση 1: Υποθέτουµε ότι ο αρχιστράτηγος είναι πιστός. Οταν k = m στο Λήµµα, τότε ο UM(m) ικανοποιεί την 2η συνθήκη. Εφόσον η 1η συνθήκη προκύπτει από την 2η συνθήκη όταν ο αρχιστράτηγος είναι πιστός, αρκεί να ασχοληθούµε µε την επόµενη περίπτωση:

Ανάλυση Αλγόριθµου (4) Περίπτωση 2: Ο αρχιστράτηγος είναι προδότης. Υπάρχουν το πολύ m προδότες και ο αρχιστράτηγος είναι ένας από αυτούς. Αρα το πολύ m 1 στρατηγοί είναι προδότες. Εφόσον υπάρχουν 3m στρατηγοί τότε οι πιστοί στρατηγοί πρέπει να είναι 3m 1 > 3(m 1) Εποµένως µπορούµε να εφαρµόσουµε το αναγωγικό ϐήµα και να καταλήξουµε ότι ο UM(m 1) ικανοποιεί τις συνθήκες 1 και 2. Εποµένως για κάθε v, κάθε Ϲευγάρι πιστών στρατηγών λαµβάνει την ίδια τιµή o v στο 3ο ϐήµα. Εποµένως κάθε Ϲευγάρι πιστών στρατηγών λαµβάνει το ίδιο σύνολο τιµών και άρα majority(o 1,..., o n 1 ) δίνει την ίδια τιµή που ικανοποιεί την 1η συνθήκη. Ανάλυση Αλγόριθµου (5) Εφαρµόζοντας τον UM(n,β) έχουµε n 1 µηνύµατα Για κάθε µήνυµα ενεργοποιείται ο UM(n,β 1) που στέλνει n 2 µηνύµατα... Αρα ο συνολικός αριθµός µηνυµάτων είναι O(n β+1 ) Τα β + 1 ϐήµατα όπου ανταλλάσσονται µηνύµατα µεταξύ των διεργασιών είναι απαραίτητο χαρακτηριστικό των αλγορίθµων που πρέπει να καταλήξουν σε µια συναίνεση υπό την παρουσία β ελαττωµατικών διεργασιών. Σύνοψη 5 ης ιάλεξης Προηγούµενο Μάθηµα Πρόβληµα Συναίνεσης Σφάλµατα Επικοινωνίας / Τερµατισµού Σύνοψη Μαθήµατος Σύγχρονα Κατανεµηµένα Συστήµατα Συναίνεση Υπό Την Παρουσία Σφαλµάτων Τερµατισµού Επικύρωση οσοληψιών Βυζαντινά Σφάλµατα σε Σύγχρονα Συστήµατα Πρόβληµα Συναίνεσης Σφάλµατα Τερµατισµού Επικύρωση οσοληψιών Βυζαντινά Σφάλµατα Σύνοψη Μαθήµατος Σύνοψη Μαθήµατος Επόµενο Μάθηµα 2η Ασκηση

Βιβλιογραφία (1) Βιβλίο Distributed Algorithms" (N.Lynch) 1. Κεφάλαιο 5: Distributed Consensus with Link Failures 2. Κεφάλαιο 6: Distributed Consensus with Process Failures 3. Κεφάλαιο 7.3: The Commit Problem Βιβλίο Distributed Computing Fundamentals, Simulations, and Advanced Topics" (H.Attiya, J.Welch) 1. Κεφάλαιο 5: Fault-Tolerant Consensus -- µόνο 5.1 Βιβλίο Introduction to Distributed Algorithms" (G.Tel) Επόµενο Μάθηµα Ασύγχρονα Κατανεµηµένα Συστήµατα Μοντελοποίηση Συστήµατος Κατανεµηµένοι Αλγόριθµοι σε Ασύγχρονα Συστήµατα 1. Κεφάλαιο 13: Fault Tolerance in Distributed Systems Βιβλίο Distributed Systems, Concepts and Design" (G.Coulouris, J.Dollimore, T.Kindberg) 1. Κεφάλαιο 13: Distributed Transactions Βιβλίο Distributed Systems: Principles and Paradigms" (A.Tanenbaum, M.Steen) 1. Κεφάλαιο 7: Fault Tolerance -- Μόνο 7.1, 7.2, 7.5 Τυπικά Θέµατα Απαντήσεις σε αρχείο τύπου PDF Κώδικας σε αρχείο τύπου HTML Παράδοση Παρασκευή, 29 Νοεµβρίου, 2013 Με την χρήση του συστήµατος submit-ds που είναι εγκατεστηµένο στο diogenis.ceid.upatras.gr Ατοµική Ασκηση Συνεισφέρει 3 ϐαθµούς στον τελικό ϐαθµό Αντιγραφή = Μηδενισµός στο µάθηµα 1 o Ερώτηµα Θεωρείστε ένα σύγχρονο κατανεµηµένο σύστηµα µε n διεργασίες συνδεδεµένες µέσω ενός δικτύου δακτυλίου διπλής κατεύθυνσης. Κάθε διεργασία έχει µια µοναδική ταυτότητα και δεν γνωρίζει το σύνολο των διεργασιών. Κατά την διάρκεια εκτέλεσης του συστήµατος παρατηρούνται σφάλµατά επικοινωνίας. Σε κάθε εκτέλεση, κάθε αποστολή ενός µηνύµατος µπορεί να αποτύχουν µε πιθανότητα p. Σχεδιάστε έναν αλγόριθµο εκλογής αρχηγού. Ορίστε τις ιδιότητες του αλγόριθµου σας και αναλύστε την ορθότητά του, καθώς και την χρονική πολυπλοκότητα και πολυπλοκότητα µηνυµάτων. Αποδείξτε τους ισχυρισµούς σας. Υλοποιείστε τον αλγόριθµο σε γλώσσα javascript.

2 o Ερώτηµα Υλοποιείστε τον αλγόριθµο Two-Phase Commit σε γλώσσα javascript χρησιµοποιώντας την ϐιβλιοθήκη PeerJS.