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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΜΑΚΡΟΟΙΚΟΝΟΜΙΚΗ Ενότητα 1: Εισαγωγή: Το αντικείμενο της Μακροοικονομικής Η έννοια και του ΑΕΠ Ονομαστικό και πραγματικό ΑΕΠ

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

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

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

Δυναμική Ηλεκτρικών Μηχανών

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

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

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

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

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

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

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

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

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

Εισαγωγή στην Επιστήμη των Υπολογιστών

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

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

Εισαγωγή στη Δικτύωση Υπολογιστών

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

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

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

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

Transcript:

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

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

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

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

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

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

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

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

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

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

Κατηγορίες αλγορίθμων Αλγόριθμοι εύρεσης ακρότατου Αρχηγός: διεργασία με μεγαλύτερο (μικρότερο) id Αλγόριθμοι σύγκρισης (όλοι που θα δούμε) Εύρεση μεγαλύτερου id ~ εύρεση μικρότερου id Αλγόριθμοι βασισμένοι σε προτιμήσεις Παράδειγμα: η πιο αξιόπιστη διεργασία Πιθανοτικοί αλγόριθμοι Δεν θεωρούν γνωστά τα αναγνωριστικά 11

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αλγόριθμος LeLann (2 από 3) Αλγόριθμος εκκινητή Στέλνει <tok,id> με το δικό του αναγνωριστικό Για κάθε μήνυμα <tok,id> που λαμβάνει Αν το id που έλαβε δεν είναι το δικό της Προσθέτει το μήνυμα σε λίστα και το προωθεί Διαφορετικά (έλαβε το id της) Βρίσκει μικρότερο id στη λίστα Αν είναι το δικό της, ανακηρύσσεται αρχηγός και ενημερώνει 29

Αλγόριθμος LeLann (3 από 3) Αλγόριθμος μη εκκινητή Για κάθε μήνυμα <tok,id> που λαμβάνει Προωθεί το μήνυμα Κόστος αλγορίθμου O(N 2 ) στη χειρότερη περίπτωση Όταν όλες οι διεργασίες είναι εκκινητές N μηνύματα κάνουν το γύρο του δακτυλίου 30

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

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

Αλγόριθμος Chang&Roberts (3 από 6) <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 κάνει τον κύκλο 33

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

Αλγόριθμος Chang&Roberts (5 από 6) Καλύτερη περίπτωση: 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> 35

Αλγόριθμος Chang&Roberts (6 από 6) Χειρότερη περίπτωση: 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> 36

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

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

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

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

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

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

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 43

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

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

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