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

Σχετικά έγγραφα
Κατανεμημένα Συστήματα Ι

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

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

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

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

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

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

Θεωρία Γραφημάτων 6η Διάλεξη

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

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

Περίληψη Φροντιστηρίου. Κατανεμημένα Συστήματα Ι. Το περιβάλλον DAP - Χαρακτηριστικά. Το περιβάλλον DAP Τι είναι.

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

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

Θεωρία Γραφημάτων 5η Διάλεξη

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

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

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

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

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

Θεωρία Γραφημάτων 5η Διάλεξη

num(m(w 1 ;... ; w k )) = f(num(w 1 ),..., num(w k ))

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο

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

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

Δυναμικός προγραμματισμός για δέντρα

Εντοπισμός τερματισμού. Κατανεμημένα Συστήματα 1

Κατανεμημένα Συστήματα. Javascript LCR example

Επαναληπτικές Διαδικασίες

Δρομολόγηση (Routing)

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

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

Διάλεξη 4: Απόδειξη: Για την κατεύθυνση, παρατηρούμε ότι διαγράφοντας μια κορυφή δεν μπορούμε να διαχωρίσουμε τα u και v. Αποδεικνύουμε

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Σειρά Προβλημάτων 1 Λύσεις

ΑΣΚΗΣΗ 1 Για τις ερωτήσεις 1-4 θεωρήσατε τον ακόλουθο γράφο. Ποιές από τις παρακάτω προτάσεις αληθεύουν και ποιές όχι;

Διάλεξη 4: Θεωρία Γραφημάτων Γραφέας: Σ. Κ. Διδάσκων: Σταύρος Κολλιόπουλος συνεκτικά γραφήματα (συνέχεια) Πρόταση 4.1 Δύο μπλοκ ενός

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Σειρά Προβλημάτων 5 Λύσεις

Διάλεξη 14: Ατομική ΚΚΜ Εγγραφής/Ανάγνωσης στην Παρουσία Σφαλμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Λύσεις Παλιών Θεµάτων. Συστήµατα Παράλληλης Επεξεργασίας, 9ο εξάµηνο Υπεύθ. Καθ. Νεκτάριος Κοζύρης

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

Δροµολόγηση (Routing)

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόγχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (1)

Τυχαιοκρατικοί Αλγόριθμοι

u v 4 w G 2 G 1 u v w x y z 4

Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Αλγόριθμοι για αυτόματα

Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 Προγραμματιστική Άσκηση 1 7 Προγραμματιστική Άσκηση 2 (CoReLab - NTUA) Αλγόριθμοι - 3

Κατανεµηµένα Συστήµατα Ένα κατανεµηµένο σύστηµα είναι µια συλλογή από αυτόνοµες διεργασίες οι οποίες έχουν τη δυνατότητα να επικοινωνούν µεταξύ τους.

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

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

7.4 Πρωτόκολλο UDP. 3. Στη περίπτωση που ένα μήνυμα χωράει σε ένα τμήμα, χρησιμοποιούμε το πρωτόκολλο TCP.

f(t) = (1 t)a + tb. f(n) =

Φροντιστήριο 11 Λύσεις

Διάλεξη 11: Αιτιότητα Διάταξη Γεγονότων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr

Γνωστό: P (M) = 2 M = τρόποι επιλογής υποσυνόλου του M. Π.χ. M = {A, B, C} π. 1. Π.χ.

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

Κεφάλαιο 4ο: Δικτυωτή Ανάλυση

Chapter 7, 8 : Time, Space Complexity

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (2)

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

Όρια Αλγόριθμων Ταξινόμησης. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Διαδικασιακός Προγραμματισμός

Κ Ε Μη γράφετε στο πίσω μέρος της σελίδας

Το πρόβλημα μονοδρόμησης (The One-Way Street Problem)

for for for for( . */

Τεχνητή Νοημοσύνη. 4η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο. Γραφήµατα. (Graphs)

Transcript:

Κατανεμημένα Συστήματα Ι Μοντέλο σύγχρονου κατανεμημένου δικτύου Εκλογή αρχηγού σε σύγχρονο δακτύλιο Παναγιώτα Παναγοπούλου

Περίληψη Σύγχρονα Κατανεμημένα Συστήματα Μοντέλο Σφάλματα Πολυπλοκότητα Εκλογή αρχηγού σε σύγχρονο δακτύλιο Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS

Σύγχρονα Κατανεμημένα Συστήματα Μοντέλο Σφάλματα Πολυπλοκότητα Εκλογή αρχηγού σε σύγχρονο δακτύλιο Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS

Σύγχρονο δικτυακό σύστημα Αποτελείται από μια συλλογή υπολογιστικών στοιχείων που βρίσκονται στους κόμβους ενός δικτύου Θεωρούμε ότι τα υπολογιστικά στοιχεία είναι διεργασίες Οι διεργασίες είναι συνδεδεμένες με ένα συνεκτικό δίκτυο (υπάρχει μονοπάτι μεταξύ οποιουδήποτε ζεύγους διεργασιών) Μοντελοποιούμε το δίκτυο ως ένα κατευθυνόμενο γράφημα G = (V, E) που ορίζεται από 1 Ένα πεπερασμένο σύνολο V απο κόμβους ή κορυφές που αντιστοιχούν στις διεργασίες του συστήματος Συμβολίζουμε n = V 2 Ένα σύνολο κατευθυνόμενων πλευρών ή ακμών E που αποτελείται από διατεταγμένα ζεύγη του V (δηλαδή E V 2 ) και αντιστοιχοούν στα κανάλια επικοινωνίας του δικτύου Συμβολίζουμε m = E

Γειτονικοί κόμβοι Μια κορυφή (ή κόμβος) v ονομάζεται εξερχόμενη γειτονική της κορυφής u όταν η (u, v) είναι μια ακμή του G (δηλαδή (u, v) E) Μια κορυφή u ονομάζεται εισερχόμενη γειτονική της κορυφής v όταν η (u, v) είναι μια ακμή του G (δηλαδή (u, v) E) Συμβολίζουμε με out_nbrs i = {j (i, j) E} όλες τις κορυφές που είναι εξερχόμενες γειτονικές της κορυφής i Συμβολίζουμε με in_nbrs i = {j (j, i) E} όλες τις κορυφές που είναι εισερχόμενες γειτονικές της κορυφής i 5 1 8 9 2 6 4 Η 5 είναι εξερχόμενη γειτονική της 8 Η 8 είναι εισερχόμενη γειτονική της 5 out_nbrs 9 = {1, 4} in_nbrs 9 = {2, 5, 6, 8}

Απόσταση και διάμετρος Απόσταση dist(i, j) Είναι το μήκος του συντομότερου κατευθυνόμενου μονοπατιού από τον κόμβο i στον κόμβο j, αν υπάρχει τέτοιο μονοπάτι Διαφορετικά, dist(i, j) = Διάμετρος diam Είναι η μέγιστη απόσταση ανάμεσα σε οποιουσδήποτε δύο κόμβους του δικτύου, δηλαδή diam = max {dist(i, j)} i V,j V 5 1 8 9 2 6 4 dist(6, 1) = 2 diam = dist(1, 5) = 5

Τοπολογία δικτύου και αρχική γνώση Ένας αλγόριθμος μπορεί να σχεδιαστεί για μια συγκεκριμένη τοπολογία δακτύλιο, δένδρο, πλήρες γράφημα, Μερικές φορες μπορεί ένας αλγόριθμος να υποθέσει μια συγκεκριμένη τοπολογία λέμε οτι ο αλγόριθμος έχει αρχική γνώση Ένας αλγόριθμος που απαιτεί πολλές υποθέσεις ως προς το δίκτυο όπου εκτελείται λέγεται ασθενής Διαφορετικά λέμε ότι είναι ισχυρός (επειδή μπορεί να εκτελεστεί σε μεγαλύτερο εύρος πιθανών δικτύων)

Διεργασίες Με κάθε κόμβο i σχετίζεται μια διεργασία που χαρακτηρίζεται από 1 Ένα σύνολο καταστάσεων states i, όπου ορισμένες είναι αρχικές καταστάσεις (υποσύνολο starti ) ορισμένες είναι καταστάσεις τερματισμού (υποσύνολο halti ) 2 Μια γεννήτρια εξερχομένων μηνυμάτων msgs i : states i out_nbrs i M {null}, όπου M είναι το αλφάβητο των μηνυμάτων και με null δηλώνουμε την απουσία μηνύματος: δεδομένης της τρέχουσας κατάστασης, δημιουργεί το πολύ ένα μήνυμα για κάθε εξερχόμενη γειτονική διεργασία 3 Μια συνάρτηση αλλαγής κατάστασης trans i : states i (M {null}) in_nbrs i states i δεδομένης της τρέχουσας κατάστασης και των μηνυμάτων που παραλήφθηκαν, υπολογίζει την επόμενη κατάσταση της διεργασίας

Κανάλια επικοινωνίας Με κάθε ακμή (i, j) σχετίζεται ένα κανάλι επικοινωνίας, ή σύνδεσμος Η επικοινωνία μέσω των καναλιών γίνεται με την ανταλλαγή μηνυμάτων Υποθέτουμε ότι κάθε κανάλι επικοινωνίας μπορεί να κρατάει μόνο ένα μήνυμα τη φορά Θεωρούμε ότι υπάρχει ένα δεδομένο αλφάβητο μηνυμάτων M Το M παραμένει σταθερό Το σύμβολο null δηλώνει την απουσία μηνύματος

Εκτέλεση αλγορίθμου, βήματα και γύροι Όλες οι διεργασίες επαναλαμβάνουν συντονισμένα τα ακόλουθα δύο βήματα: 1ο βήμα 1 Εφαρμογή της γεννήτριας μηνυμάτων για την παραγωγή μηνυμάτων για τους εξερχόμενους γείτονες 2 Αποστολή μηνυμάτων μέσω των αντίστοιχων καναλιών 2ο βήμα 1 Εφαρμογή της συνάρτησης αλλαγής κατάστασης και τη μετάβαση στη νέα κατάσταση 2 Διαγραφή όλων των μηνυμάτων από τα κανάλια Ο συνδυασμός των δύο βημάτων ονομάζεται γύρος

Παράδειγμα states u = {a, b, c}, M = {m 1, m 2 } (υπάρχει και το null) msgs u (a, 1) = m 1, msgs u (a, 2) = null, msgs u (a, 3) = m 2 trans u (a, (m 1, m 2, null, m 2 )) = b u 1 2 2 3 3 4 1

Παράδειγμα states u = {a, b, c}, M = {m 1, m 2 } (υπάρχει και το null) msgs u (a, 1) = m 1, msgs u (a, 2) = null, msgs u (a, 3) = m 2 u 1 2 3 u 1 2 3 msgs u m 1 null m 2 a a

Παράδειγμα states u = {a, b, c}, M = {m 1, m 2 } (υπάρχει και το null) trans u (a, (m 1, m 2, null, m 2 )) = b u 1 2 3 trans u 4 m 1 m 2 m 2 null a u 1 2 3 4 b

Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1 2 1 oς Γύρος 1 o Βήμα 1α εφαρμογή γεν μην 1 oς Γύρος 1 o Βήμα 1α εφαρμογή γεν μην

Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1 2 1 oς Γύρος 1 o Βήμα 1α εφαρμογή γεν μην 1 oς Γύρος 1 o Βήμα 1α εφαρμογή γεν μην

Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1 2 1 o Βήμα 1α εφαρμογή γεν μην 1β παραγωγή μην 1 o Βήμα 1α εφαρμογή γεν μην 1β παραγωγή μην

Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1α εφαρμογή γεν μην 1β παραγωγή μην 1γ αποστολή μην M 1 2 M 1α εφαρμογή γεν μην 1β παραγωγή μην 1γ αποστολή μην

Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1β παραγωγή μην 1γ αποστολή μην 2 o Βήμα M 1 2 M 1β παραγωγή μην 1γ αποστολή μην 2 o Βήμα

Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1γ αποστολή μην 2 o Βήμα 2α συν αλλαγής κατ 1 2 M M 1γ αποστολή μην 2 o Βήμα 2α συν αλλαγής κατ

Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 2 o Βήμα 2α συν αλλαγής κατ 2β διαγραφή μην 1 2 M M 2 o Βήμα 2α συν αλλαγής κατ 2β διαγραφή μην

Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1 2 2α συν αλλαγής κατ 2β διαγραφή μην 2 oς Γύρος 2α συν αλλαγής κατ 2β διαγραφή μην 2 oς Γύρος

Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1 2 2β διαγραφή μην 2 oς Γύρος 1 o Βήμα 2β διαγραφή μην 2 oς Γύρος 1 o Βήμα

Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1 2 2 oς Γύρος 1 o Βήμα 1α εφαρμογή γεν μην 2 oς Γύρος 1 o Βήμα 1α εφαρμογή γεν μην

Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1 2 1 o Βήμα 1α εφαρμογή γεν μην 1β παραγωγή μην 1 o Βήμα 1α εφαρμογή γεν μην 1β παραγωγή μην

Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1α εφαρμογή γεν μην 1β παραγωγή μην 1γ αποστολή μην M 1 2 M 1α εφαρμογή γεν μην 1β παραγωγή μην 1γ αποστολή μην

Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1β παραγωγή μην 1γ αποστολή μην 2 o Βήμα M 1 2 M 1β παραγωγή μην 1γ αποστολή μην 2 o Βήμα

Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1γ αποστολή μην 2 o Βήμα 2α συν αλλαγής κατ 1 2 M M 1γ αποστολή μην 2 o Βήμα 2α συν αλλαγής κατ

Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 2 o Βήμα 2α συν αλλαγής κατ 2β διαγραφή μην 1 2 M M 2 o Βήμα 2α συν αλλαγής κατ 2β διαγραφή μην

Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1 2 2α συν αλλαγής κατ 2β διαγραφή μην 3 oς Γύρος 2α συν αλλαγής κατ 2β διαγραφή μην 3 oς Γύρος

Εκτέλεση ενός κατανεμημένου αλγορίθμου (1) Παράδειγμα εκτέλεσης ενός σύγχρονου συστήματος: Αρχικά: όλες οι διεργασίες βρίσκονται σε κάποια αρχική κατάσταση, όλα τα κανάλια είναι άδεια Οι διεργασίες εκτελούν συντονισμένα το πρωτόκολλο Εκτέλεση σύγχρονου συστήματος 1 2 2β διαγραφή μην 3 oς Γύρος 1 o Βήμα 2β διαγραφή μην 3 oς Γύρος 1 o Βήμα

Εκτέλεση ενός κατανεμημένου αλγoρίθμου (2) Θέλουμε να περιγράψουμε την εκτέλεση ενός κατανεμημένου αλγορίθμου Θεωρούμε μια ακολουθία μεταβάσεων της κατάστασης των διεργασιών του συστήματος που προέρχονται από την αποστολή και παραλαβή μηνυμάτων, εσωτερικές αλλαγές Έστω μια δεδομένη χρονική στιγμή/γύρος r Kάθε διεργασία u στο τέλος του r βρίσκεται σε κάποια κατάσταση από το states u O χαρακτηρισμός της κατάστασης όλων των διεργασιών καθορίζει τη συνολική κατάσταση του συστήματος C r

Εκτέλεση ενός κατανεμημένου αλγόριθμου (3) Στη συνέχεια, οι διεργασίες εκτελούν τον επόμενο γύρο του αλγορίθμου, δηλαδή τον r + 1 Πραγματοποιούνται ορισμένες αποστολές μηνυμάτων Mr+1 Πραγματοποιούνται κάποιες παραλαβές μηνυμάτων Nr+1 (ο λόγος που διαχωρίζουμε τα δύο σύνολα είναι γιατί σε περιπτώσεις ύπαρξης σφαλμάτων μπορεί τα μηνύματα που παραλαμβάνονται να είναι διαφορετικά από αυτά που στάλθηκαν, πχ να λείπουν κάποια επειδή χάθηκαν) Στο τέλος του γύρου r + 1, το σύστημα λέμε ότι βρίσκεται στην κατάσταση C r+1 Επομένως, η εκτέλεση ενός κατανεμημένου αλγορίθμου μπορεί να οριστεί ως μια άπειρη ακολουθία C 0, M 1, N 1, C 1, M 2, N 2, C 2,

Είσοδοι και έξοδοι Σύμβαση: H είσοδος και η έξοδος του κατανεμημένου αλγορίθμου είναι κωδικοποιημένη στις καταστάσεις Η είσοδος δίνεται από μεταβλητές εισόδου στις αρχικές καταστάσεις Πολλές αρχικές καταστάσεις πολλές διαφορετικές τιμές εισόδου Ο μόνος λόγος που έχουμε πολλές αρχικές καταστάσεις είναι η δυνατότητα διαφορετικών τιμών εισόδου Η έξοδος δίνεται από μεταβλητές εξόδου Μια μεταβητή εξόδου μπορεί να γραφτεί μόνο μία φορά (write-once μεταβλητές), αλλά μπορεί να διαβαστεί όσες φορές χρειαστεί

Σφάλματα Ορίζουμε δύο τύπους σφαλμάτων: 1 Σφάλματα που παρουσιάζονται κατά την αποστολή μηνυμάτων 2 Σφάλματα που παρουσιάζονται στις υπολογιστικές μονάδες (στους επεξεργαστές) Σφάλμα επικοινωνίας: αποτυχία κατά την αποστολή ενός μηνύματος σε ένα κανάλι του δικτύου Τερματικό σφάλμα: Η διεργασία σταματάει είτε πριν, είτε μετά, είτε κατά την εκτέλεση κάποιου τμήματος του 1ου ή του 2ου βήματος ενός γύρου Επομένως, μπορεί να συμβεί ένα σφάλμα κατά την παραγωγή των μηνυμάτων, οπότε να σταλεί ένα μέρος των εξερχόμενων μηνυμάτων

Βυζαντινά σφάλματα Το δίκτυο περιέχει ελαττωματικές διεργασίες που δεν σταματούν αλλά συνεχίζουν να συμμετέχουν στην εκτέλεση του αλγορίθμου Η συμπεριφορά των διεργασιών μπορεί να είναι τελείως ανεξέλεγκτη Η εσωτερική κατάσταση μιας ελαττωματικής διεργασίας μπορεί να αλλάξει κατά τη διάρκεια ενός γύρου χωρίς να υπάρχει κάποιο μήνυμα Μια ελαττωματική διεργασία μπορεί να στείλει μηνύματα με οποιοδήποτε περιεχόμενο, ανεξάρτητα από τις οδηγίες του κατανεμημένου αλγορίθμου που θα έπρεπε να τρέχει Ονομάζουμε τέτοιου είδους σφάλματα Βυζαντινά σφάλματα Μπορούμε να μοντελοποιήσουμε εχθρική συμπεριφορά (πχ θέματα ασφάλειας)

Μέτρηση πολυπλοκότητας Επιλογή κατάλληλου σύγχρονου κατανεμημένου αλγόριθμου: Πως μπορούμε να μετρήσουμε την απόδοση; Χρησιμοποιούμε δύο μετρικές για τη μέτρηση της πολυπλοκότητας των κατανεμημένων αλγόριθμων: 1 Πολυπλοκότητα χρόνου 2 Πολυπλοκότητα επικοινωνίας

Χρονική πολυπλοκότητα Χρονική πολυπλοκότητα Η χρονική πολυπλοκότητα σε ένα σύγχρονο σύστημα ορίζεται ως το πλήθος των γύρων που απαιτούνται για να παραχθούν όλες οι ζητούμενες έξοδοι, ή μέχρι να τερματιστούν όλες οι διεργασίες (δηλ να βρεθούν σε μια τερματική κατάσταση) Σχετίζεται άμεσα με τον χρόνο εκτέλεσης Στην πράξη, ο χρόνος εκτέλεσης ενός κατανεμημένου αλγόριθμου είναι η πιο σημαντική μετρική της απόδοσης

Πολυπλοκότητα επικοινωνίας (1) Πολυπλοκότητα επικοινωνίας Η πολυπλοκότητα επικοινωνίας ενός σύγχρονου συστήματος ορίζεται ως ο συνολικός αριθμός μη μηδενικών μηνυμάτων (δηλ δεν προσμετρούνται τα null μηνύματα) που αποστέλλονται Μερικές φορές, υπολογίζεται επίσης και ο αριθμός των bits των μηνυμάτων Θέμα μελέτης όταν ο όγκος των μηνυμάτων προκαλεί συμφόρηση στο δίκτυο: επιβραδύνεται η εκτέλεση του αλγορίθμου

Πολυπλοκότητα επικοινωνίας (2) Σε πραγματικές συνθήκες: Εκτελούνται ταυτόχρονα πολλοί αλγόριθμοι Μοιράζονται τα ίδια κανάλια επικοινωνίας Πόσο συνεισφέρει κάθε αλγόριθμος στη συνολική συμφόρηση του δικτύου; Δύσκολο να ποσοτικοποιήσουμε την επίδραση που έχουν τα μηνύματα οποιουδήποτε αλγόριθμου στη χρονική απόδοση άλλων αλγορίθμων Γενικότερα, προσπαθούμε να ελαχιστοποιήσουμε τον αριθμό των μηνυμάτων που παράγονται από κάθε αλγόριθμο ξεχωριστά

Σύγχρονα Κατανεμημένα Συστήματα Μοντέλο Σφάλματα Πολυπλοκότητα Εκλογή αρχηγού σε σύγχρονο δακτύλιο Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS

Γενικά Πρόβλημα εκλογής αρχηγού (leader elec on) Η εκλογή αρχηγού σε ένα δίκτυο απαιτεί την επιλογή μιας μοναδικής διεργασίας που θα βρεθεί στην κατάσταση αρχηγός (ή εκλεγμένη) ενώ όλες οι άλλες διεργασίες βρίσκονται στην κατάσταση μη-αρχηγός (ή μη εκλεγμένη) Παρουσιάστηκε για πρώτη φορά από τον Le Lann (1977) Αποτυπώνει τα βασικά χαρακτηριστικά μιας μεγάλης ομάδας προβλημάτων που αντιμετωπίζουν τα πραγματικά κατανεμημένα συστήματα Παρουσιάζει πολλές παραλλαγές Για αρχή, μελετάμε το πρόβλημα σε δίκτυα δακτυλίου

Περισσότερα από 1 από το καθένα Ο πλεονασμός (redundancy) είναι μια κοινή τεχνική για την επίτευξη αξιοπιστίας (robustness) σε περίπτωση σφαλμάτων Μερικές φορές μια υπηρεσία εγκαθιστάται σε πολλαπλές μηχανές για λόγους αξιοπιστίας, όμως μόνο μια διεργασία είναι ενεργή σε κάθε χρονική στιγμή Όμως, δεν μπορούμε να καταστήσουμε έναν άνθρωπο (πχ sys admin) υπεύθυνο για την κατάσταση των κρίσιμων διεργασιών Μια αυτοματοποιημένη διαδικασία είναι απαραίτητη για να απενεργοποιεί τις πλεονάζουσες διεργασίες εξασφαλίζοντας πάντα 1 ενεργή διεργασία στο περιβάλλον παραγωγής (produc on environment)

Ορισμός του προβλήματος Ένας αλγόριθμος λύνει το πρόβλημα εκλογής αρχηγού εφόσον πληροί τις παρακάτω προδιαγραφές: Όλες οι καταστάσεις τερματισμού χωρίζονται σε δύο σύνολα: 1 καταστάσεις που αναδεικνύουν την διεργασία ως εκλεγμένη 2 καταστάσεις που θεωρούν την διεργασία ως μη εκλεγμένη Σε κάθε εκτέλεση του αλγορίθμου: μία και μόνο μία διεργασία είναι εκλεγμένη οι άλλες διεργασίες βρίσκονται σε κατάσταση μη-εκλεγμένη

Δίκτυα δακτυλίου Θεωρούμε ένα σύγχρονο κατανεμημένο σύστημα από n διεργασίες Είναι τοποθετημένες σε ένα δίκτυο δακτυλίου με n κόμβους Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν τις ταυτότητες των υπολοίπων διεργασιών Μπορούν να ξεχωρίσουν τον δεξιόστροφο γείτονα τους από τον αριστερόστροφο Διεργασίες σε δακτύλιο Θεωρούμε ότι οι κόμβοι είναι αριθμημένοι από το 1 έως το n με δεξιόστροφη κατεύθυνση Οι διεργασίες δεν έχουν γνώση αυτού του τρόπου αρίθμησης

Παραλλαγές Το πρόβλημα της εκλογής αρχηγού παρουσιάζει πολλές παραλλαγές: Μπορεί να απαιτείται όλες οι διεργασίες που βρίσκονται σε κάποια κατάσταση μη-εκλεγμένη να ανακοινώσουν το γεγονός ότι δεν είναι αρχηγοί, πχ μεταβάλλοντας μια μεταβλητή στην τιμή μη-αρχηγός Ο δακτύλιος μπορεί να είναι είτε μονής είτε διπλής κατεύθυνσης O αριθμός n των κόμβων που εκτελούν τον αλγόριθμο μπορεί να είναι γνωστός ή άγνωστος Οι διεργασίες μπορούν να διαχωριστούν απο τις υπόλοιπες, πχ χρησιμοποιώντας κάποια μοναδική ταυτότητα (unique id, UID) ή όχι Οι ταυτότητες μπορεί να επιλέγονται απο ένα περιορισμένο σύνολο, ή από όλο το σύνολο των θετικών ακέραιων N +

Aδυναμία αντιμετώπισης του προβλήματος (1) Παρατηρούμε ότι εάν οι διεργασίες δεν μπορούν να διαχωριστούν μεταξύ τους, τότε δεν μπορεί να βρεθεί κάποιος αλγόριθμος που να δίνει λύση στο πρόβλημα Θεώρημα Έστω ένα σύστημα A από n διεργασίες συνδεδεμένες μέσω ενός δικτύου δακτυλίου Αν όλες οι διεργασίες είναι πανομοιότυπες και δεν μπορούν να ξεχωρίσουν η μία την άλλη, τότε κανένας αλγόριθμος δεν μπορεί να λύσει το πρόβλημα εκλογής αρχηγού για το σύστημα A Το θεώρημα ισχύει ακόμα και όταν ο συνολικός αριθμός των διεργασιών n είναι γνωστός σε κάθε διεργασία, ή όταν το δίκτυο έχει συγκεκριμένες ιδιότητες, πχ τα κανάλια είναι μονής ή διπλής κατεύθυνσης

Aδυναμία αντιμετώπισης του προβλήματος (2) Απόδειξη Χρησιμοποιούμε τη μέθοδο της απαγωγής σε άτοπο Έστω αλγόριθμος που λύνει το πρόβλημα για το A Υποθέτουμε ότι κάθε διεργασία έχει μόνο μία αρχική κατάσταση Άρα το A μπορεί να εκτελεστεί με μοναδικό τρόπο Επαγωγικά: τον γύρο r όλες οι διεργασίες θα βρίσκονται στην ίδια κατάσταση Αν κάποια διεργασία βρεθεί σε κατάσταση εκλεγμένη, τότε όλες οι άλλες διεργασίες θα έχουν βρεθεί στην ίδια κατάσταση, άρα δεν υπάρχει μία και μόνο μία διεργασία αρχηγός

Μοναδικές ταυτότητες Ο μόνος τρόπος να λύσουμε το πρόβλημα εκλογής αρχηγού είναι να σπάσουμε τη συμμετρία Υπόθεση: οι διεργασίες είναι πανομοιότυπες, με την εξαίρεση ότι έχουν ένα UID

Ο Αλγόριθμος των Le Lann, Chang και Roberts Δεν γνωρίζει τον συνολικό αριθμό των διεργασιών Υποθέτει ότι οι διεργασίες μπορούν να επικοινωνήσουν μόνο προς μία κατεύθυνση (δεξιόστροφα) Βασίζεται σε απλές πράξεις σύγκρισης ταυτοτήτων Αποκεντρικοποιημένος αλγόριθμος

Ο Αλγόριθμος των Le Lann, Chang και Roberts Αλγόριθμος LCR Οι διεργασίες διατηρούν μια μεταβλητή αρχηγός η οποία αρχικά είναι false Oι διεργασίες εκπέμπουν την ταυτότητα τους στο δεξιόστροφο γείτονα τους Μόλις λάβουν μία ταυτότητα απο τον αριστερόστροφο γείτονα, τη συγκρίνουν με την δικιά τους Αν είναι μεγαλύτερη, την προωθούν στον δεξιόστροφο γείτονα Αν είναι μικρότερη, δεν κάνουν τίποτα Αν είναι ίδια, μεταβαίνουν στην κατάσταση εκλεγμένη θέτοντας την μεταβλητή αρχηγός στην τιμή true

Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο

Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών

Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών Πρώτος γύρος αποστολή μηνυμάτων

Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών Πρώτος γύρος αποστολή μηνυμάτων Δεύτερος γύρος

Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών Πρώτος γύρος αποστολή μηνυμάτων Δεύτερος γύρος Επόμενοι γύροι

Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών Πρώτος γύρος αποστολή μηνυμάτων Δεύτερος γύρος Επόμενοι γύροι

Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών Πρώτος γύρος αποστολή μηνυμάτων Δεύτερος γύρος Επόμενοι γύροι

Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών Πρώτος γύρος αποστολή μηνυμάτων Δεύτερος γύρος Επόμενοι γύροι

Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών Πρώτος γύρος αποστολή μηνυμάτων Δεύτερος γύρος Επόμενοι γύροι

Παράδειγμα εκτέλεσης αλγορίθμου LCR Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Δίκτυο δακτυλίου Οι κόμβοι αριθμημένοι από 1 έως 8 δεξιόστροφα Διεργασίες σε δακτύλιο Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών Πρώτος γύρος αποστολή μηνυμάτων Δεύτερος γύρος Επόμενοι γύροι Εκλογή αρχηγού διεργασία 2

Χαρακτηριστικά του Αλγόριθμου LCR Έστω n διεργασίες, όπου η διεργασία με τη μεγαλύτερη ταυτότητα είναι η i max Η διεργασία i max εκλέγεται αρχηγός στο τέλος του γύρου n Καμμία διεργασία εκτός της i max δεν είναι σε κατάσταση εκλεγμένη Η χρονική πολυπλοκότητα είναι O(n) Η πολυπλοκότητα επικοινωνίας είναι O(n 2 )

Απόδειξη Ορθότητας (1) Η αρίθμηση των διεργασιών είναι modulo n Το μήνυμα που στέλνει η διεργασία i αναφέρεται ως send i Η i max είναι η διεργασία με τη μεγαλύτερη ταυτότητα u max Λήμμα Η διεργασία i max εκλέγεται αρχηγός στο τέλος του γύρου n Απόδειξη Μετά απο r γύρους, το send imax+r είναι η ταυτότητα u max του i max Για r = 0 ισχύει, εφόσον αρχικά send imax = u max Επαγωγικά, στο τέλος του γύρου r, η διεργασία i max + r λαμβάνει την ταυτότητα του i max και στέλνει send imax+r = u max Άρα στο γύρο n η διεργασία i max 1 θα στείλει στην i max την ταυτότητά της u max οπότε η i max θα θέσει την μεταβλητή αρχηγός στην τιμή true

Απόδειξη Ορθότητας (2) Λήμμα Καμμία διεργασία πλην της i max δεν εκλέγεται αρχηγός Απόδειξη Για κάθε διεργασία i σε οποιοδήποτε γύρο r οι διεργασίες i max, i max+1,, i 1, i δεν θα στείλουν την ταυτότητα της i Άρα η i δεν θα λάβει ποτέ την ταυτότητα της επομένως δεν θα θέσει ποτέ την μεταβλητή αρχηγός στην τιμή true Θεώρημα Ο αλγόριθμος LCR λύνει το πρόβλημα της εκλογής αρχηγού σε σύγχρονα δίκτυα δακτυλίου

Ο Αλγόριθμος των Hirschberg και Sinclair (HS) Βελτιώνει την πολυπλοκότητα επικοινωνίας σε O(n log n) διατηρώντας τον χρόνο O(n) Δεν γνωρίζει τον συνολικό αριθμό των διεργασιών Υποθέτει επικοινωνία διπλής κατεύθυνσης Βασίζεται σε απλές πράξεις σύγκρισης ταυτοτήτων Όπως και ο LCR εκλέγει τη διεργασία με το μεγαλύτερο UID

Αλγόριθμος HS (άτυπη περιγραφή) Ο υπολογισμός χωρίζεται σε φάσεις l = 0, 1, Σε κάθε φάση l, κάθε awake διεργασία i στέλνει σκυτάλες που περιλαμβάνουν το UID της, u i, και προς τις δύο κατευθύνσεις Κάθε σκυτάλη προσπαθεί να ταξιδέψει απόσταση 2 l και έπειτα να επιστρέψει στην i Αν και οι δύο σκυτάλες της i επιστρέψουν, τότε η i συνεχίζει στην επόμενη φάση (παραμένει awake), αλλιώς σταματάει να παράγει σκυτάλες (συνεχίζει όμως να προωθεί σκυτάλες άλλων διεργασιών) Μία σκυτάλη της i χάνεται αν καθώς απομακρύνεται από την i συναντήσει διεργασία της οποίας το UID είναι μεγαλύτερο από το δικό της

Αλγόριθμος HS (άτυπη περιγραφή) Αν μία σκυτάλη της i, καθώς απομακρύνεται από την i, συναντήσει την i, τότε έχει διαγράψει μια πλήρη περιστροφή και η i εκλέγεται αρχηγός Οι σκυτάλες που ταξιδεύουν προς τα μέσα (δηλ κατά την επιστροφή τους) προωθούνται από όλες τις διεργασίες χωρίς έλεγχο Για να ξέρουν πόσο πρέπει να ταξιδέψουν οι σκυτάλες, η i τους συμπεριλαμβάνει έναν μετρητή απόστασης (hop-count)

Χαρακτηριστικά αλγορίθμου HS Πολυπλοκότητα χρόνου O(n) Πολυπλοκότητα επικοινωνίας O(n log n)

Περαιτέρω βελτιώσεις Αν η μόνη πράξη που επιτρέπεται να εφαρμόσουν οι διεργασίες πάνω στα UIDs είναι η σύγκριση, τότε είναι αδύνατον να κατασκευάσουμε αλγόριθμο που να επιτυγχάνει πολυπλοκότητα επικοινωνίας ασυμπτωτικά καλύτερη από n log n Σε αυτή την περίπτωση λέμε ότι υπάρχει κάτω φράγμα Ω(n log n) στην πολυπλοκότητα μηνυμάτων Αν επιτρέψουμε πιο σύνθετο χειρισμό των UIDs (πχ αν επιτρέψουμε γενικές αριθμητικές πράξεις) τότε το παραπάνω κάτω φράγμα παύει να ισχύει και μπορούμε να κατασκευάσουμε αλγορίθμους που επιτυγχάνουν πολυπλοκότητα επικοινωνίας O(n)