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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

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

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

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

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

Ειδικά Θέματα Δικτύων ΙΙ. Ενότητα 7: Δρομολόγηση κατάστασης ζεύξης (Μέρος 1) Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Ειδικά Θέματα Δικτύων ΙΙ. Ενότητα 8: Δρομολόγηση κατάστασης ζεύξης (Μέρος 2) Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Εισαγωγή στους Αλγορίθμους

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

Σχεδίαση Δικτύων Υπολογιστών

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους

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

Ειδικά Θέματα Δικτύων ΙΙ

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

Ειδικά Θέματα Δικτύων Ι

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

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Δρομολόγηση στο Internet (II) Αλγόριθμοι Distance Vector (Bellman) Αλγόριθμοι Link State (Dijkstra)

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Σχεδίαση Δικτύων Υπολογιστών. Ενότητα 8: Δρομολόγηση κατάστασης ζεύξης (Μέρος 1 ο ) Άγγελος Μιχάλας Τμήμα Μηχανικών Πληροφορικής ΤΕ

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Μοντελοποίηση Λογικών Κυκλωμάτων

Λειτουργικά Συστήματα

Εισαγωγή στους Αλγορίθμους Ενότητα 7η

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

Λογιστικές Εφαρμογές Εργαστήριο

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4

Υπολογιστική άλγεβρα Ενότητα 10: Βάσεις Groebner ενός ιδεώδους ΙΙΙ

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Πληροφορική. Εργαστηριακή Ενότητα 6 η : Ταξινόμηση & Ομαδοποίηση Δεδομένων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Πιθανότητες. Συνδυαστική Ανάλυση Διδάσκων: Επίκουρος Καθηγητής Κωνσταντίνος Μπλέκας

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

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

ΜΑΘΗΜΑ: ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

Λειτουργικά Συστήματα

ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ. ΕΝΟΤΗΤΑ: Γραμμικές Συναρτήσεις Διάκρισης. ΔΙΔΑΣΚΟΝΤΕΣ: Βλάμος Π. Αυλωνίτης Μ. ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Διακριτά Μαθηματικά. Ενότητα 5: Απαρίθμηση: Διωνυμικοί συντελεστές

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 6: Προβλήματα ικανοποίησης περιορισμών. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5

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

Ειδικά Θέματα Δικτύων Ι

Εφαρμοσμένη Στατιστική

Τεχνολογία Λογισμικού

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 7: Τοπικά δίκτυα

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Πρόβλημα συντομότερης διαδρομής - Shortest path problem. Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ

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

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8

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

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

Υπολογιστικά & Διακριτά Μαθηματικά

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Ενδεικτικές λύσεις ασκήσεων

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 1: Εισαγωγικό Μάθημα

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ. ΕΝΟΤΗΤΑ: Διανυσματικοί Χώροι (1) ΔΙΔΑΣΚΩΝ: Βλάμος Παναγιώτης ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δείκτες Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Transcript:

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

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Οικονομικό Πανεπιστήμιο Αθηνών» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 2

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Οι εικόνες προέρχονται από το βιβλίο «Κατανεμημένα Συστήματα με Java», Ι. Κάβουρας, Ι. Μήλης, Γ. Ξυλωμένος, Α. Ρουκουνάκη, 3 η έκδοση, 2011, Εκδόσεις Κλειδάριθμος. 3

Σκοποί ενότητας Κατανόηση της ανάγκης και των εφαρμογών εκλογής αρχηγού. Εξοικείωση με τις βασικές κατηγορίες αλγορίθμων εκλογής αρχηγού. Κατανόηση των περιπτώσεων που εφαρμόζεται κάθε κατηγορία αλγορίθμων. 4

Περιεχόμενα ενότητας Εισαγωγή Τοπολογία δένδρου Τοπολογία δακτυλίου Τοπολογία ισχυρά συνδεδεμένου γράφου 5

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

Το πρόβλημα Επιλογή μίας διεργασίας από ένα σύνολο Η διεργασία αυτή θα είναι ο αρχηγός (leader) Δεν αρκεί να αυτοανακηρυχθεί αρχηγός Πρέπει να συμφωνήσουν όλες στην ταυτότητά της Εκτέλεση ενός αλγορίθμου εκλογής Ο αλγόριθμος ξεκινάει από οποιαδήποτε διεργασία Συνήθως διεργασία που είδε ότι ο αρχηγός δεν απαντά 7

Εφαρμογές Σε τι χρειάζεται ο αρχηγός; Εκτέλεση συγκεντρωτικών αλγορίθμων Ανίχνευση αδιεξόδων Αρχικοποίηση κατανεμημένων αλγορίθμων Έκδοση κουπονιού Συντονισμός διεργασιών Αναπαραγωγή αντιγράφων Γενικά όπου μία διεργασία έχει ειδικό ρόλο 8

Αλγόριθμοι εκλογής Είσοδος αρχική κατάσταση Αυθαίρετο μη κενό σύνολο διεργασιών Κάθε διεργασία εκτελεί τον ίδιο αλγόριθμο Αρκεί τελικά ο αρχηγός να γνωρίζει ότι εκλέχτηκε Ενημέρωση των άλλων διεργασιών για αρχηγό Τελική κατάσταση Μία και μόνο μία διεργασία είναι ο αρχηγός (leader) Οι άλλες είναι στην κατάσταση του χαμένου (lost) 9

Κατηγορίες διεργασιών Εκκινητές (Initiators) Ξεκινούν την εκτέλεση του αλγορίθμου αυτόματα Πιθανόν με την ικανοποίηση μίας συνθήκης Πρώτο γεγονός: αποστολή ενός μηνύματος Μη-εκκινητές (Non-initiators) Απλά συμμετέχουν στον αλγόριθμο Ξεκινάνε την εκτέλεση όταν λάβουν ένα μήνυμα Πρώτο γεγονός: λήψη ενός μηνύματος 10

Υποθέσεις Μοναδικό αναγνωριστικό (id) ανά διεργασία Γνωστό στην διεργασία που το κατέχει Μεταδίδεται στις άλλες διεργασίες Αποστολή μηνυμάτων σε διεργασία Αν γνωρίζουμε το αναγνωριστικό Αναγνωριστικά: στοιχεία συνόλου Π Διατεταγμένο σύνολο Επιτρέπει συγκρίσεις (π.χ. <>, >, <) 11

Κατηγορίες αλγορίθμων Extrema finding αλγόριθμοι Αρχηγός: διεργασία με μεγαλύτερο (μικρότερο) id Αλγόριθμοι σύγκρισης (όλοι που θα δούμε) Εύρεση μεγαλύτερου id ~ εύρεση μικρότερου id Preference based αλγόριθμοι Η εκλογή βασίζεται σε προτιμήσεις Παράδειγμα: η πιο αξιόπιστη διεργασία Probabilistic αλγόριθμοι Δεν θεωρούν γνωστά τα αναγνωριστικά 12

Τοπολογίες (1 από 2) Δένδρο αυθαίρετου βαθμού Αλγόριθμος δένδρου Δακτύλιος μίας κατεύθυνσης Αλγόριθμοι LeLann και Chang & Roberts Ισχυρά συνδεδεμένος γράφος Καθένας μπορεί να μιλήσει με κάθε άλλον Απευθείας επικοινωνία όλων των κόμβων Αλγόριθμος Garcia Molina (Bully) 13

Τοπολογίες (2 από 2) Αλγόριθμοι δακτυλίου ή δένδρου Εφαρμόζονται σε οποιαδήποτε τοπολογία Βρίσκουμε επικαλυπτικό δακτύλιο ή δένδρο Ανάλογα με το τι είναι πιο απλό για την εφαρμογή Παράδειγμα: δακτύλιος Chord Διαφορετικές υποθέσεις για κάθε αλγόριθμο Παράδειγμα: στο δακτύλιο ξέρουμε μόνο τον επόμενο Παράδειγμα: στο δένδρο ξέρουμε τα παιδιά μας 14

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

Μοντέλο δένδρου (1 από 2) Δίκτυα με τοπολογία δένδρου Ή επικαλυπτικό δένδρο πάνω σε δίκτυο Γνωρίζουμε τα αναγνωριστικά των γειτόνων Δεν γνωρίζουμε τα αναγνωριστικά των άλλων Δεν γνωρίζουμε το πλήθος των άλλων Αρχηγός: διεργασία με min αναγνωριστικό Απλή αλλαγή για max 16

Μοντέλο δένδρου (2 από 2) Εκκινητές Τουλάχιστον τα φύλλα του δένδρου Απαιτείται πρόσθετη φάση «ξυπνήματος» Εξασφάλιση ότι τα φύλλα έχουν γίνει εκκινητές Μπορεί να είναι και άλλοι κόμβοι βέβαια Μη εκκινητές Όλες οι υπόλοιπες διεργασίες στο δένδρο 17

Αλγόριθμος έναρξης (1 από 3) Κάνει όλες τις διεργασίες εκκινητές Κάθε διεργασία εκκινητής Στέλνει ένα μήνυμα <wake_up> σε κάθε γείτονά της Περιμένει να λάβει μηνύματα <wake_up> από όλους τους γείτονές της (προκειμένου να βεβαιωθεί ότι έχουν εγερθεί ή "ξυπνήσει") Αρχίζει την εκτέλεση του αλγορίθμου εκλογής 18

Αλγόριθμος έναρξης (2 από 3) Κάθε διεργασία μη εκκινητής Όταν λάβει μήνυμα <wake_up> Γίνεται εκκινητής Ενεργεί ανάλογα 19

Αλγόριθμος έναρξης (3 από 3) Παράδειγμα αλγορίθμου έναρξης Ο εκκινητής είναι η διεργασία 2 Τα μηνύματα είναι αριθμημένα σε φάσεις Ι Ι 2 Ι 1 ΙΙ ΙΙ ΙΙΙ ΙΙΙ 6 ΙV ΙV 7 V V ΙV 5 ΙΙ ΙΙ 3 ΙΙΙ Ι ΙΙ ΙΙ 8 4 V 11 9 10 VI 20

Αλγόριθμος εκλογής (1 από 6) Αλγόριθμος όλων των διεργασιών Κάθε διεργασία Περιμένει να λάβει μηνύματα <tok,id> από όλους τους γείτονές της, εκτός (το πολύ) από έναν, έστω τον p 0 Για κάθε μήνυμα <tok,id> που λαμβάνει Εντοπίζει το μικρότερο αναγνωριστικό, έστω u p,ανάμεσα σε αυτά που έχει λάβει και στο δικό της 21

Αλγόριθμος εκλογής (2 από 6) Παρατήρηση: η συνθήκη ισχύει στα φύλλα Έχουν μόνο έναν γείτονα! Άρα ξεκινάνε άμεσα τον αλγόριθμο Γι αυτό τα κάνουμε όλα εκκινητές Αυτό διασφαλίζει ο αλγόριθμος έναρξης Κάθε διεργασία προτείνει έναν αρχηγό Ο αρχηγός θα οριστικοποιηθεί αργότερα 22

Αλγόριθμος εκλογής (3 από 6) Όταν ικανοποιηθεί η συνθήκη Στέλνει μήνυμα <tok,u p > στον p 0 Περιμένει μήνυμα <tok,id> από τον p 0 Όταν λάβει μήνυμα <tok,id> από τον p 0 Εντοπίζει και πάλι το μικρότερο αναγνωριστικό, έστω u p, από αυτά που έχει λάβει και το δικό της Αν αυτό είναι το δικό της Ανακηρύσσεται αρχηγός Στέλνει σε όλους τους γείτονές της, εκτός του p 0, μήνυμα <tok,u p > 23

Αλγόριθμος εκλογής (4 από 6) Παράδειγμα δ. 4, 5, 8, 10, 11: στέλνουν <tok, min id> δ. 3, 9: στέλνουν <tok, min id>, δ. 2,7: στέλνουν <tok, min id> δ. 1: στέλνει <tok, min id> (=1), δ. 6: στέλνει <tok, min id> (=6) δ. 1: αποφασίζει ότι είναι αρχηγός δ. 6, 7, 9, 1, 2, 3 : στέλνουν <tok, 1> στους απογόνους 1 2 2 1 1 1 1 6 6 1 7 1 7 9 10 1 5 5 3 3 8 1 4 1 8 4 1 11 9 10 11 24

Αλγόριθμος εκλογής (5 από 6) Έναρξη Κάθε κόμβος στέλνει/λαμβάνει ένα wakeup Για κάθε γείτονα Σε κάθε ζεύξη έχουμε δύο ακριβώς μηνύματα Συνολικά 2N 2 μηνύματα Εκλογή Ακριβώς όπως και στην έναρξη Δύο μηνύματα ανά ζεύξη, άρα 2N 2 25

Αλγόριθμος εκλογής (6 από 6) Ξύπνημα και εκλογή 4Ν 4 μηνύματα ~ Ο(Ν) Βελτιώσεις Μη εκκινητές: δεν απαντούν στο ξύπνημα Φύλλα: συνδυάζουν <wakeup> με πρώτο <tok,id> 3N 4 + k (k: εκκινητές που δεν είναι φύλλα) 26

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

Μοντέλο δακτυλίου Οργάνωση διεργασιών σε δακτύλιο Επικοινωνία προς μία κατεύθυνση FIFO κανάλια επικοινωνίας Κάθε διεργασία Γνωρίζει μόνο το δικό της αναγνωριστικό Στέλνει μηνύματα στην επόμενή της Λαμβάνει μηνύματα από την προηγούμενή της Αρχηγός: διεργασία με min αναγνωριστικό 28

Αλγόριθμος LeLann (1 από 4) Εκκινητές Σύνολο υποψήφιων για αρχηγία Υποσύνολο διεργασιών δακτυλίου Ξεκινούν στέλνοντας <tok, id> Μετά λαμβάνουν άλλα μηνύματα Ο αλγόριθμος τελειώνει από τον αρχηγό Ενημερώνει όλες τις άλλες διεργασίες 29

Αλγόριθμος LeLann (2 από 4) Μη εκκινητές Υπόλοιπες διεργασίες Αλγόριθμος μη εκκινητή Κάθε διεργασία p που δεν είναι εκκινητής Για κάθε μήνυμα <tok,id> που λαμβάνει Προωθεί το μήνυμα 30

Αλγόριθμος LeLann (3 από 4) Αλγόριθμος εκκινητή Κάθε διεργασία p που είναι εκκινητής Στέλνει ένα μήνυμα <tok,id> με το δικό της αναγνωριστικό Για κάθε μήνυμα <tok,id> που λαμβάνει Αν το id που έλαβε δεν είναι το δικό της Προσθέτει το μήνυμα σε μια λίστα Προωθεί το μήνυμα 31

Αλγόριθμος LeLann (4 από 4) Διαφορετικά (έλαβε το id της) Βρίσκει μικρότερο id στη λίστα Αν αυτό το id είναι το δικό της Ανακηρύσσεται αρχηγός Ενημερώνει τις υπόλοιπες 32

Αλγόριθμος Chang&Roberts (1 απο 7) Βελτίωση του αλγορίθμου του LeLann Εκκινητής: δεν προωθεί μηνύματα με > id Κάθε εκκινητής με αναγνωριστικό p Αφαιρεί το μήνυμα <tok, q>, όταν q > p Κάθε εκκινητής p Είναι χαμένος όταν λάβει <tok, q> και q < p Είναι αρχηγός όταν λάβει <tok, q> όπου q = p 33

Αλγόριθμος Chang&Roberts (2 απο 7) Επιβιώνει μόνο το μήνυμα του νέου αρχηγού Όλα τα υπόλοιπα μηνύματα αφαιρούνται Δεν απαιτείται λίστα id σε κάθε εκκινητή Κάθε διεργασία p που δεν είναι εκκινητής Για κάθε μήνυμα <tok,id> που λαμβάνει Προωθεί το μήνυμα 34

Αλγόριθμος Chang&Roberts (3 απο 7) Κάθε διεργασία p που είναι εκκινητής Στέλνει ένα μήνυμα <tok,id> Για κάθε μήνυμα <tok,id> που λαμβάνει Αν το id είναι < από το δικό της Προωθεί το μήνυμα Αν το id είναι το δικό της Ανακηρύσσεται αρχηγός Ενημερώνει τις υπόλοιπες 35

Αλγόριθμος Chang&Roberts (4 απο 7) <tok,1> 1 <tok,3> <tok,2> <tok,1> 3 <tok,2> <tok,1> Παράδειγμα 4 2 <tok,1> 7 <tok,7> <tok,1> Σκιασμένοι κόμβοι: initiators 6 <tok,7> <tok,1> Μηνύματα με σειρά εμφάνισης Μόνο το 1 κάνει τον κύκλο 36

Αλγόριθμος Chang&Roberts (5 απο 7) Πολυπλοκότητα: O(NlogN) μέσος όρος O(N) στην καλύτερη περίπτωση O(N 2 ) στη χειρότερη περίπτωση Εξαρτάται από τη διάταξη των διεργασιών Ο αλγόριθμος του LeLann είναι O(N 2 ) Κάθε κόμβος προωθεί όλα τα μηνύματα Αν όλοι είναι εκκινητές, NxN μηνύματα 37

Αλγόριθμος Chang&Roberts (6 απο 7) Καλύτερη περίπτωση: O(N) Όλες οι διεργασίες του δακτυλίου είναι initiators Σε φθίνουσα σειρά ως προς τη φορά του δακτυλίου Όλα τα μηνύματα κάνουν ένα hop πλην ενός Συνολικά n+n-1 μηνύματα <tok,n-1> <tok,0> n-1 <tok,0> 0 <tok,1> <tok,0> n-2 1 <tok,n-2> <tok,0> n-3 <...> <tok,n-3> <tok,0> <tok,2> <tok,0> 38

Αλγόριθμος Chang&Roberts (7 απο 7) Χειρότερη περίπτωση: O(N 2 ) Σε αύξουσα σειρά ως προς τη φορά του δακτυλίου Tο μήνυμα της διεργασίας i εκτελεί Ν i hops Συνολικά 1+2+...+n=n(n+1)/2 μηνύματα <tok,0> 0 <tok,0> <tok,1> <...> <tok,n-1> n-1 <tok,0> <tok,1> <...> <tok,n-2> 1 <...> <tok,0> <tok,1> 2 <tok,0> <tok,1> 3 <tok,0> <tok,1> <tok,2> <tok,2> <tok,3> 39

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

Μοντέλο γράφου (1 από 2) Αλγόριθμος Garcia-Molina Λέγεται και αλγόριθμος εξαναγκασμού (bully) Μοντέλο Κάθε διεργασία έχει αναγνωριστικό (id) Κάθε διεργασία γνωρίζει τα id όλων των άλλων Αρχηγός η διεργασία με τo μέγιστο id Μια πεσμένη διεργασία μπορεί να επανέρχεται 41

Μοντέλο γράφου (2 από 2) Εκκινητής: ξεκινάει την εκτέλεση Διεργασία που διαπιστώνει έλλειψη αρχηγού Παρατηρεί ότι ο τρέχων αρχηγός δεν απαντά Διεργασία που επανέρχεται Δεν έχει σημασία αν υπάρχει ήδη αρχηγός Ίσως πρέπει να γίνει αυτή αρχηγός! 42

Αλγόριθμος Garcia-Molina (1 από 6) Αν μια διεργασία p είναι εκκινητής Αν η p έχει το μεγαλύτερο αναγνωριστικό Αυτοανακηρύσσεται αρχηγός Γνωστοποιεί το αναγνωριστικό της σε όλες τις διεργασίες με μικρότερο αναγνωριστικό Διαφορετικά Στέλνει σε όλες τις διεργασίες με μεγαλύτερο αναγνωριστικό μήνυμα <election> Περιμένει για κάποιο συγκεκριμένο χρονικό διάστημα μήνυμα <ΟΚ> από κάποια από αυτές 43

Αλγόριθμος Garcia-Molina (2 από 6) Αν η p λάβει κάποιο μήνυμα <ΟΚ> Περιμένει (για κάποιο χρονικό διάστημα) να λάβει το αναγνωριστικό του αρχηγού Αν το χρονικό διάστημα εξαντληθεί Ξαναστέλνει μήνυμα <election> Αν το χρονικό διάστημα εξαντληθεί και η p δεν λάβει κάποιο μήνυμα <OK> Ανακηρύσσεται αρχηγός (οι διεργασίες με μεγαλύτερο id έχουν αποτύχει) Γνωστοποιεί στις διεργασίες με μικρότερο id ότι είναι ο αρχηγός 44

Αλγόριθμος Garcia-Molina (3 από 6) Αν η p λάβει <election> από διεργασία p Αν έχει μεγαλύτερο αναγνωριστικό από p Στέλνει ένα μήνυμα <ΟΚ> στην p Αν μια διεργασία p δεν είναι εκκινητής Αν λάβει <election> από διεργασία p Αν έχει μεγαλύτερο αναγνωριστικό από p Στέλνει απάντηση <ΟΚ> στην p Αναλαμβάνει το ρόλο του εκκινητή 45

0 <election> 6 0 6 Αλγόριθμος Garcia-Molina (4 από 6) (α) Παράδειγμα: Εκκινητής η 4 4, αρχηγός 5 η 6 7 2 3 1 <election> <election> 7 (β) 3 2 1 4 5 <ΟΚ> 2 1 4 <election> 5 <election> 2 1 0 6 <ΟΚ> 7 3 4 5 (γ) <ΟΚ> <election> 0 6 7 3 (δ) 0 <election> 6 0 6 2 1 7 3 7 3 4 5 (α) (β) 2 1 2 1 0 6 4 5 <election> <election> 4 5 <ΟΚ> 7 (στ) 3 0 6 0 6 7 3 <election> 7 3 (γ) (δ) 2 1 46

Αλγόριθμος Garcia-Molina (5 από 6) Παράδειγμα (συνέχεια) δ. 7: ο πρώην αρχηγός που αποτυγχάνει δ. 4: ανακαλύπτει την έλλειψη αρχηγού Στέλνει <election> στις δ. με μεγαλύτερο id Δηλαδή: 5, 6, 7 δ. 5, 6: απαντάνε <ΟΚ> στην 4 δ. 7: έχει αποτύχει 47

Αλγόριθμος Garcia-Molina (6 από 6) Παράδειγμα (συνέχεια) δ. 4: σταματάει και περιμένει να ενημερωθεί δ. 6: στέλνει <election> στην 7 και <ΟΚ> στην 5 δ. 6: δεν λαμβάνει <ΟΚ> από την 7 δ. 6: ανακηρύσσεται αρχηγός δ. 6: ενημερώνει ότι είναι ο νέος αρχηγός 48

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