Εκλογή Αρχηγού Ειδικά Θέματα Κατανεμημένων Συστημάτων
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 2 Το Πρόβλημα - Όταν μια συγκεκριμένη διεργασία που έχει αναλάβει ένα ξεχωριστό ρόλο αποχωρίσει ή παρουσιάσει βλάβη πρέπει να επιλεγεί (εκλεγεί) μια νέα διεργασία. Άλλη περίπτωση παρουσιάζεται σε token ring networks. - Οποιαδήποτε διεργασία μπορεί να αρχίσει την διαδικασία της εκλογής, και μπορεί περισσότερες διεργασίες να αρχίσουν την εκλογή ταυτόχρονα. - Όλες οι διεργασίες πρέπει να συμφωνήσουν στην επιλογή τους.
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 3 Υποθέσεις - Υποθέτουμε πως κάθε διεργασία έχει μοναδικό αριθμό. - Υποθέτουμε πως οι βλάβες εντοπίζονται και πως δεν χάνονται μηνύματα.
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 4 Ιδιότητες Ορθότητας - Κάθε διεργασία δημιουργεί και διατηρεί τις μεταβλητές status και elected. - Ε1 - Ιδιότητα ασφάλειας: Κάθε διεργασία με την status=idle,busy, έχει την μεταβλητή elected με τιμή none, και κάθε διεργασία με την status=done έχει την μεταβλητή elected με τιμή p, όπου p η διεργασία με το μεγαλύτερο ID στην οποία δε σημειώθηκε βλάβη μέχρι το πέρας εκτέλεσης. - Ε2 - Ιδιότητα βιωσιμότητας: Κάθε διεργασία τελικά αναθέτει στην status την τιμή done ή παρουσιάζει βλάβη.
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 5 Ιδιότητες Ορθότητας - Μερικοί αλγόριθμοι δεν εκλέγουν ως αρχηγό τη διεργασία με το μεγαλύτερο ID. - Σε αυτή την περίπτωση το κριτήριο ασφάλειας (Ε1) τροποποιείται αναλόγως.
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 6 Περιπτώσεις - Θα διαχωρίζουμε τους αλγορίθμους που θα εξετάσουμε ως προς την τοπολογία του δικτύου που αναφέρονται και τις υποθέσεις επικοινωνίας. Υποθέσεις Επικοινωνίας - Σύγχρονο ΚΣ: Όλοι οι κόμβοι εκτελούν ταυτόχρονα τα βήματα που περιγράφονται από τον αλγόριθμο. Η εκτέλεση των αλγορίθμων προχωρά σε σύγχρονες φάσεις. - Ασύγχρονο ΚΣ: Οι κόμβοι εκτελούν τα βήματα του αλγορίθμου σε διαφορετικές ταχύτητες ο καθένας, πχ., στη μετάδοση ενός μηνύματος δεν ξέρουμε το χρόνο άφιξης. Η εκτέλεση δεν προχωρά με τον ίδιο ρυθμό παντού.
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 7 Περιπτώσεις Σύγχρονη επικοινωνία n Δακτύλιος (LCR alg., HS alg., TimeSlice) n Πλήρως συνδεδεμένο δίκτυο (Bully alg.) n Γενικό δίκτυο (FloodMax alg., OptFloodMax alg.) Ασύγχρονη επικοινωνία n Δακτύλιος (AsynchLCR, Peterson alg) n Γενικό Δίκτυο (AsynchFloodMax)
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 8 LCR (Σύγχρονος Δακτύλιος) - Οι διεργασίες είναι διατεταγμένες σε σύγχρονο δακτύλιο, και η επικοινωνία γίνεται μόνο προς μια κατεύθυνση. - Μία διεργασία Pi που αρχίζει την εκλογή θέτει status=busy και στέλνει μήνυμα m= στην επόμενη διεργασία. - Όταν η διεργασία Pj λάβει m= και status=busy, τότε προωθεί το μήνυμα m αν i>j. - Όταν η διεργασία Pj λάβει m= και status=idle, τότε θέτει status=busy και προωθεί το μήνυμα m αν i>j, διαφορετικά προωθεί μήνυμα m=.
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 9 LCR (Σύγχρονος Δακτύλιος) - Όταν η διεργασία Pi λάβει m= με τον δικό της αριθμό, θέτει τον εαυτό της ως νικητή, δηλαδή elected=i. - Αφού η διεργασία νικητής Pi θέσει elected=i, στέλνει μήνυμα m= στην επόμενη διεργασία. - Όταν η διεργασία Pj λάβει μήνυμα m= και status=busy, τότε θέτει elected=i, status=done και προωθεί το μήνυμα m. - Όταν η διεργασία Pi λάβει μήνυμα m= με τον δικό της αριθμό, τότε θέτει elected=i, status=done.
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 10 Παράδειγμα start winner=?
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 11 Παράδειγμα start start winner=?
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 12 Παράδειγμα start winner=?
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 13 Παράδειγμα start winner=?
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 14 Παράδειγμα start won winner=? winner=4
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 15 Παράδειγμα start won winner=4winner=? winner=4
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 16 Παράδειγμα start won winner=4 winner=? winner=4
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 17 Παράδειγμα won winner=4
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 18 Παράδειγμα winner=4
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 19 Σχόλια - Ικανοποιεί τις ιδιότητες Ε1 και Ε2. - Αν μόνο μία διεργασία ξεκινά την εκλογή αρχηγού, στην καλύτερη περίπτωση χρειάζονται 2Ν μηνύματα, αλλά στην χειρότερη περίπτωση χρειάζονται 3Ν-1 μηνύματα και καθυστέρηση που αντιστοιχεί στην σειριακή αποστολή/παραλαβή 3Ν-1 μηνυμάτων -γιατί; - Στην περίπτωση που όλες οι διεργασίες ξεκινούν ταυτόχρονα τη διαδικασία εκλογής τότε χρειάζονται 2Ν γύροι μηνυμάτων και Ο(n 2 ) μηνύματα συνολικά. - Θεωρούμε ότι δεν χάνονται μηνύματα (αυτό μπορεί να προσομοιωθεί μέσω επανεκπομπών), οπότε μας απασχολούν μόνο βλάβες διεργασιών.
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 20 HS (Σύγχρονος Δακτύλιος) - Όταν όλες οι διεργασίες ξεκινούν ταυτόχρονα τη διαδικασία εκλογής: πολυπλοκότητα χρόνου εκτέλεσης LCR O(n), πολυπλοκότητα σε μηνύματα O(n 2 ). - O HS αλγόριθμος (Hirschberg&Sinclair) αποτελεί βελτίωση που ρίχνει την πολυπλοκότητα των μηνυμάτων σε Ο(nlogn). - Ο αλγόριθμος λειτουργεί σε φάσεις. - Σε κάθε φάση p μία διεργασία i στέλνει μήνυμα m= της τόσο δεξιόστροφα όσο και αριστερόστροφα στο δακτύλιο.
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 21 HS (Σύγχρονος Δακτύλιος) - Τα 2 μηνύματα ταξιδεύουν για hop_count=2 p και κατόπιν ξαναγυρνούν στον origin κόμβο. - Η μεταβλητή dir στο μήνυμα παίρνει τιμές out ή in αναλόγως της διεύθυνσης που ταξιδεύει το μήνυμα. Όταν μία διεργασία j λάβει μήνυμα m= Αν i>j && hop_count!=0 προωθεί m= Αν i>j && hop_count==0 γυρνά m= Αν i<j το μήνυμα πετιέται.
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 22 HS (Σύγχρονος Δακτύλιος) - Μία διεργασία που λαμβάνει in μήνυμα το προωθεί πάντα. - Μία διεργασία συνεχίζει στην επόμενη φάση αν λάβει πίσω και τα 2 μηνύματα που έστειλε. - Αρχηγός εκλέγεται όταν μία διεργασία λάβει out μήνυμα με το δικό της ID. Γιατί?
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 23 HS Πολυπλοκότητα - Μία διεργασία μετέχει στη φάση p αν έλαβε και τα 2 μηνύματα που απέστειλε στη φάση p-1, δηλ. αν νίκησε 2 p-1 διεργασίες προς κάθε κατεύθυνση του δακτυλίου. - Με άλλα λόγια στη φάση p για κάθε group 2 p-1 +1 διεργασιών υπάρχει το πολύ 1 διεργασία που μετέχει ενεργά στη φάση. Άρα υπάρχουν το πολύ: floor(n/2 p-1 +1) μετέχουσες διεργασίες. - Άρα ο συνολικός αριθμός μηνυμάτων στη φάση p είναι: 4(2 p floor(n/2 p-1 +1))<=8n ( 2 p για την απόσταση που διανύουν τα μηνύματα και 4 για να πάνε και να έρθουν και τα 2 μηνύματα που στέλνει κάθε μετέχουσα διεργασία).
Ειδικά Θέματα Κατ. Συστ. Εκλογή Αρχηγού/ Slide 24 HS Πολυπλοκότητα - Σύνολο φάσεων: 1+ceil(logn), επομένως max αριθμός μηνυμάτων 8n(1+ceil(logn)), που δίνει Ο(nlogn). - Για την πολυπλοκότητα χρόνου έχουμε Ο(n). Απόδειξη: Μία φάση p διαρκεί 2(2 p )=2 p+1 και η διάρκειά της είναι >= από το άθροισμα των διαρκειών όλων των φάσεων που προηγήθηκαν (2 p+1 >=2 p +2 p-1 +2 p-2 +..) H προτελευταία φάση p=ceil(logn)-1 διαρκεί 2 ceil(logn) άρα ο συνολικός χρόνος μέχρι και τη φάση αυτή είναι <=2(2 ceil(logn) ) που είναι <= 2n αν το n είναι δύναμη του 2 και 4n αν δεν είναι. Η τελευταία φάση είναι ημιτελής και έχει διάρκεια n. Άρα ο χρόνος εκτέλεσης του HS είναι O(n).