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

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

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

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

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

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

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

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

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

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

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

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

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

Consensus and related problems

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σύνοψη Προηγούµενου. Κανονικές Γλώσσες (1) Προβλήµατα και Γλώσσες. Σε αυτό το µάθηµα. ιαδικαστικά του Μαθήµατος.

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

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

Εισαγωγή στην Τοπολογία

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

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

Προσεγγιστικοί Αλγόριθμοι

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

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

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

Εισαγωγή στην Τοπολογία

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

οµήτης παρουσίασης Marzullo και Neiger αλγόριθµος Παράδειγµα Distributed Debugging Εισαγωγικά

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

Σύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2) Ισοδυναµία CFG και PDA. Σε αυτό το µάθηµα. Αυτόµατα Στοίβας Pushdown Automata


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

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

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

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

Γενικό πλάνο. Μαθηµατικά για Πληροφορική. Παράδειγµα αναδροµικού ορισµού. οµική επαγωγή ΠΑΡΑ ΕΙΓΜΑ. 3ο Μάθηµα

Μαθηµατικά για Πληροφορική

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Αδιέξοδα (Deadlocks)

4.3. Γραµµικοί ταξινοµητές

Πληρότητα της μεθόδου επίλυσης

Ασφαλή Συστήματα Μέθοδοι ελέγχου και εξακρίβωσης ορθής λειτουργίας

Προσεγγιστικοί Αλγόριθμοι

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

Παράδειγµα: Προσοµοίωση µιας ουράς FIFO Οι λειτουργίες που υποστηρίζονται από µια ουρά FIFO είναι: [enq(q,x), ack(q)] [deq(q), return(q,x)] όπου x είν

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

Γραµµικη Αλγεβρα Ι Επιλυση Επιλεγµενων Ασκησεων Φυλλαδιου 4

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

ΗΥ180: Λογική Διδάσκων: Δημήτρης Πλεξουσάκης. Φροντιστήριο 8 Επίλυση για Horn Clauses Λογικός Προγραμματισμός Τετάρτη 9 Μαΐου 2012

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

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

Τεχνολογίες Υλοποίησης Αλγορίθµων

Γραµµική Αλγεβρα Ι. Ενότητα: ιανυσµατικοί χώροι. Ευάγγελος Ράπτης. Τµήµα Μαθηµατικών

Συνεπείς καθολικές καταστάσεις & επιβεβαίωση ιδιοτήτων. Κατανεμημένα Συστήματα 1

Άπληστοι Αλγόριθµοι. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Άπληστοι Αλγόριθµοι 1

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

Q 12. c 3 Q 23. h 12 + h 23 + h 31 = 0 (6)

Συνεπής παρατήρηση εκτέλεσης & συνεπείς καθολικές καταστάσεις. Κατανεμημένα Συστήματα 1

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

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

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

Mathematics and its Applications, 5th

2 Αποδείξεις. 2.1 Εξαντλητική µέθοδος. Εκδοση 2005/03/22. Υπάρχουν πολλών ειδών αποδείξεις. Εδώ ϑα δούµε τις πιο κοινές:

Η NTM αποδέχεται αν µονοπάτι στο δέντρο που οδηγεί σε αποδοχή.

HY Λογική Διδάσκων: Δ. Πλεξουσάκης

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

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

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

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

Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Το σύστηµα περιέχει n διεργασίες p 0,, p n-1 και m καταχωρητές R 0,, R m-1. Κάθε διεργασία µοντελοποιείται ως

Transcript:

Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Σύνοψη Προηγούµενου Μαθήµατος Ασύγχρονα Κατανεµηµένα Συστήµατα Σφάλµατα σε Ασύγχρονα Συστήµατα ηµήτρης Καραβίας ευτέρα, 25 Νοεµβρίου, 2013 Αίθουσα Β3 Μελέτη Σύγχρονων Κατανεµηµένων Συστηµάτων Η παραδοχή της συγχρονισµένης εκτέλεσης δεν αποτυπώνει πλήρως τις πραγµατικές συνθήκες λειτουργίας Οµως, διευκολύνει την κατανόηση των προβληµάτων Η παραδοχή της συντονισµένης εκτέλεσης των ϐηµάτων των αλγόριθµων Η υπόθεση ταυτόχρονης παράδοσης όλων των µηνυµάτων Εξετάσαµε την απόδοση των πρωτοκόλλων ως προς τον χρόνο εκτέλεσης χρονική πολυπλοκότητα ως προς το πλήθος µηνυµάτων που ανταλλάχθηκαν πολυπλοκότητα επικοινωνίας Ασύγχρονα Κατανεµηµένα Συστήµατα Συστήµατα Ανεξάρτητων ιασυνδεδεµένων Οντοτήτων Η διασύνδεση επιτρέπει συνεργασία Η συνεργασία επιτρέπει παραγωγή επιθυµητών αποτελεσµάτων (πχ Spanning Trees, DB transactions) Πρόβληµα Να περιγραφεί κατάλληλα ο τρόπος συνεργασίας των οντοτήτων για συστηµατική παραγωγή των επιθυµητών αποτελεσµάτων

Κατανεµηµένος Αλγόριθµος: υνατότητες Περιγράφει τη συνεργασία των οντοτήτων Η περιγραφή οριζει τις ενέργειες που ϑα κάνει η κάθε οντοτητα... και τον τροπο που ϑα επικοινωνούν µεταξύ τους Είναι ίδια για κάθε οντοτητα Αποτελεί συστηµατική λύση του εκάστοτε προβλήµατος αντιµετωπίζει επιτυχώς κάθε στιγµιότυπο αυτού Αξιολόγείται µε ϐάση τον αριθµο των ενεργειών που ϑα εκτελέσει η κάθε οντότητα και των αριθµό των µηνυµάτων που ϑα σταλούν στο δίκτυο Κατανεµηµένος Αλγόριθµος: Αδυναµίες Time Free Systems: εν επιτρέπεται καµία a priori υπόθεση ούτε για τις ταχύτητες µε τις οποίες εκτελούνται οι ενέργειες σε κάθε οντότητα ούτε για τις ταχύτητες ανταλλαγής µηνυµάτων Κάθε οντότητα καλείται να εκτελέσει την κατάλληλη ενέργεια γνωρίζοντας εν γένει µέρος µόνο της συνολικής ς του συστηµατος και της προόδου που έχει γινει ως τώρα Real Life: Πλήθος αστάθµητων παραγόντων επηρρεάζουν το σύστηµα: Μηνύµατα χάνονται, οντότητες σταµατούν να λειτουργούν-ξαναξεκινούν, οντότητες λειτουργούν αυθαίρετα (ή και κακόβουλα), χάνουν την κατάστασή τους... Καθώς οι παράγοντες είναι αστάθµητοι επιβάλλουν ένα µη ντετερµινισµό στο σύστηµα ο οποίος πρέπει να παρακαµφθεί ώστε να οδηγηθούµε σε ντετερµινιστικά αποτελέσµατα Πρόβληµα: To stop or not to stop waiting Σε ένα ϱεαλιστικό ασύγχρονο σύστηµα εµφανίζονται γεγονότα µε πολύ κοινά χαρακτηριστικά που οµως πρέπει να αντιµετωπιστούν διαφορετικά Μηνύµατα που στέλνει µια διεργασια χάνονται πρωτού παραληφθούν Μια διεργασία εκτελει ϐήµατα µε πολύ αργο ϱυθµό Μια διεργασια έχει καταρρεύσει Κοινό χαρακτηριστικό Η παρουσία της διεργασίας δε γίνεται αισθητή από το υπόλοιπο δικτυο Το κοινό χαρακτηριστικό δυσκολεύει το διαχωρισµό των γεγονότων Ωστόσο ο διαχωρισµός είναι αναγκαιος στις περισσότερες περιπτώσεις Πρόβληµα: To stop or not to stop waiting Καθώς µια διεργασια δεν ανταποκρίνεται προκύπτει το διληµµα αν αξίζει το υπόλοιπο δίκτυο να την περιµένει Το πρόβληµα έχει τις ϐάσεις του στο συνδιασµό time free και fault vulnerable συστήµατος Μήπως κάνουµε λάθος που µπλέκουµε αυτα τα δύο; Το time free µοντέλο παρέχει ένα αναγκαίο abstraction για τη µοντελοποίηση των περισσοτερων πραγµατικών συστηµάτων Σφάλµατα συµβαίνουν χωρίς να µπορούν να προβλεφθούν ή να αποφευχθούν, σε διάφορα επίπεδα(hardware failures, software bugs..) Στην περίπτωσή µας λοιπόν και στραβός ειναι ο γυαλός (time free συστήµατα) και στραβά αρµενίζουµε (fault vulnerabilities)! Αφού δεν µπορούµε να αποφύγουµε το πρόβληµα, ας προσπαθήσουµε να το λύσουµε!

Προσεγγίσεις Πόσο µας δυσκολεύει αυτή η ; Οι Fischer, Lynch, Paterson έδειξαν ότι το πρόβληµα του Consensus είναι άλυτο για οποιοδήποτε δίκτυο άκοµα και υπό την παρουσία ενός µόνο process failure Λύσεις : Randomization Weaker Problems Strongest Model (Partial Synchrony..) Failure Detectors Σύνοψη 7 ης ιάλεξης Προηγούµενο Μάθηµα Προηγούµενο Μάθηµα Σύγχρονα Κατανεµηµένα Συστήµατα Σταθεροποίηση Σταθεροποιούµενοι Κατανεµηµένοι Αλγόριθµοι Αµοιβαίος Αποκλεισµός Σταθεροποιούµενες Κατανεµηµένες οµές Σύνοψη Μαθήµατος Σύνοψη Μαθήµατος Βιβλιογραφία Επόµενο Μάθηµα Βιώσιµοι Αλγόριθµοι (Robust Algorithms) Εως τώρα µελετήσαµε την συµπεριφορά των κατανεµηµένων συστηµάτων όταν οι διεργασίες ή τα κανάλια είναι αξιόπιστα Μελετήσαµε ποια ϑα είναι η πιθανή συµπεριφορά των διεργασιών Οταν οι διεργασίες µπορεί να αποτύχουν Τα κανάλια επικοινωνίας είναι αναξιόπιστα Οι λύσεις για ανοχή σε λάθη είναι εξειδικευµένες Προσπαθούν να διατηρούν το σύστηµα σε µια λειτουργική ( καλή ) Περιορίζουν το πρόβληµα κάνοντας παραδοχές (Πρόβληµα Συναίνεσης, αριθµός σφαλµάτων, παραβίαση συνθηκών) Μερικές ϕορές είναι πολύπλοκοι στην υλοποίηση (Two Phase and Three Phase Commit) Αυτο-σταθεροποιούµενοι Αλγόριθµοι (1) Οι αυτο-σταθεροποιούµενοι αλγόριθµοι επιτυγχάνουν µια συµπεριφορά ανοχής λαθών µε ένα ϱιζικά διαφορετικό τρόπο Οι ϐιώσιµοι αλγόριθµοι ακολουθούν µια απαισιόδοξη (pessimistic) προσέγγιση Σε κάθε γύρο εκτελούν µια σειρά ελέγχων για να εγγυηθούν την εγκυρότητα των ϐηµάτων Θεωρούν ότι όλα τα πιθανά σφάλµατα που µπορεί να συµβούν, ϑα συµβούν Οι σταθεροποιούµενοι αλγόριθµοι είναι αισιόδοξοι (optimistic) Τα σφάλµατα που εµφανίζονται είναι παροδικά Οι σωστές διεργασίες µπορεί να συµπεριφέρονται ασυνεπώς

Αυτο-σταθεροποιούµενοι Αλγόριθµοι (2) Βασική ιδέα Το σύστηµα έχει την ικανότητα να συγκλίνει µε πεπερασµένο αριθµό ϐηµάτων από οποιαδήποτε (ασταθή) σε µια επιθυµητή (ευσταθή) εχόµαστε ότι τελικά επέρχεται επιδιόρθωση Μπορούµε να εγκαταλείψουµε µοντέλα αποτυχίας και όρια στον αριθµό αποτυχιών Υποθέτουµε ότι όλες οι διεργασίες λειτουργούν σωστά, αλλά η εκτέλεση µπορεί αυθαίρετα να καταστραφεί κατά τη διάρκεια µιας παροδικής αποτυχίας εν χρειάζεται να εξετάζουµε τις λανθασµένες διεργασίες Αυτο-σταθεροποιούµενοι Αλγόριθµοι (3) Αγνοούµε το ιστορικό της εκτέλεσης του υπολογισµού Κατά τη διάρκεια της αποτυχίας, η εκτέλεση µε την οποία αρχίσαµε την ανάλυση του αλγόριθµου ϑεωρείται και η αρχική του σωστού αλγόριθµου Ενας αλγόριθµος ονοµάζεται αυτο-σταθεροποιούµενος (ή σταθεροποιούµενος) αν τελικά συµπεριφέρεται σωστά ηλαδή σύµφωνα µε τις προδιαγραφές και ανεξάρτητα από την αρχική του εκτέλεση Η έννοια της σταθεροποίησης προτάθηκε από το Dijkstra Μικρή πρόοδος έγινε µέχρι το τέλος της δεκαετίας του 80 Η κυριότερες έρευνες έγιναν στη δεκαετία του 90, έτσι το ϑέµα ϑεωρείτε ακόµα σχετικά καινούργιο Ορισµοί Οι σταθεροποιούµενοι αλγόριθµοι µοντελοποιούνται ως σύστηµα µετάβασης χωρίς αρχική Για ένα Ϲεύγος καταστάσεων κ, κ, κ κ αν υπάρχει ενέργεια ɛ τέτοια ώστε (κ, ɛ, κ ) trans(a) Ο αλγόριθµος A σταθεροποιείται στην προδιαγραφή Π αν υπάρχει υποσύνολο καταστάσεων L states(a) τέτοιο ώστε Κάθε εκτέλεση που ξεκινά από µια στο L ικανοποιεί την προδιαγραφή Π (ορθότητα) Κάθε εκτέλεση περιέχει µια στο L (σύγκλιση) Αποδεικνύοντας τη σταθεροποίηση (1) Για να δείξουµε κατά πόσο ένας αλγόριθµος είναι σταθεροποιούµενος ϐασιζόµαστε στην χρήση νόµιµων ή ευσταθών εκτελέσεων Αρχικά υποθέτουµε ότι ο αλγόριθµος ξεκινά από µια που ανήκει στο L Θέλουµε να αποδείξουµε ότι υπάρχει µια συνάρτηση σύγκλισης προς µια νόµιµη/ευσταθή εκτέλεση

Αποδεικνύοντας τη σταθεροποίηση (1) Για να δείξουµε κατά πόσο ένας αλγόριθµος είναι σταθεροποιούµενος ϐασιζόµαστε στην χρήση νόµιµων ή ευσταθών εκτελέσεων Αρχικά υποθέτουµε ότι ο αλγόριθµος ξεκινά από µια που ανήκει στο L Θέλουµε να αποδείξουµε ότι υπάρχει µια συνάρτηση σύγκλισης προς µια νόµιµη/ευσταθή εκτέλεση Αποδεικνύοντας τη σταθεροποίηση (1) Για να δείξουµε κατά πόσο ένας αλγόριθµος είναι σταθεροποιούµενος ϐασιζόµαστε στην χρήση νόµιµων ή ευσταθών εκτελέσεων Αρχικά υποθέτουµε ότι ο αλγόριθµος ξεκινά από µια που ανήκει στο L Θέλουµε να αποδείξουµε ότι υπάρχει µια συνάρτηση σύγκλισης προς µια νόµιµη/ευσταθή εκτέλεση Αποδεικνύοντας τη σταθεροποίηση (1) Για να δείξουµε κατά πόσο ένας αλγόριθµος είναι σταθεροποιούµενος ϐασιζόµαστε στην χρήση νόµιµων ή ευσταθών εκτελέσεων Αρχικά υποθέτουµε ότι ο αλγόριθµος ξεκινά από µια που ανήκει στο L Θέλουµε να αποδείξουµε ότι υπάρχει µια συνάρτηση σύγκλισης προς µια νόµιµη/ευσταθή εκτέλεση Αποδεικνύοντας τη σταθεροποίηση (1) Για να δείξουµε κατά πόσο ένας αλγόριθµος είναι σταθεροποιούµενος ϐασιζόµαστε στην χρήση νόµιµων ή ευσταθών εκτελέσεων Αρχικά υποθέτουµε ότι ο αλγόριθµος ξεκινά από µια που ανήκει στο L Θέλουµε να αποδείξουµε ότι υπάρχει µια συνάρτηση σύγκλισης προς µια νόµιµη/ευσταθή εκτέλεση

Αποδεικνύοντας τη σταθεροποίηση (1) Για να δείξουµε κατά πόσο ένας αλγόριθµος είναι σταθεροποιούµενος ϐασιζόµαστε στην χρήση νόµιµων ή ευσταθών εκτελέσεων Αρχικά υποθέτουµε ότι ο αλγόριθµος ξεκινά από µια που ανήκει στο L Θέλουµε να αποδείξουµε ότι υπάρχει µια συνάρτηση σύγκλισης προς µια νόµιµη/ευσταθή εκτέλεση Αποδεικνύοντας τη σταθεροποίηση (1) Για να δείξουµε κατά πόσο ένας αλγόριθµος είναι σταθεροποιούµενος ϐασιζόµαστε στην χρήση νόµιµων ή ευσταθών εκτελέσεων Αρχικά υποθέτουµε ότι ο αλγόριθµος ξεκινά από µια που ανήκει στο L Θέλουµε να αποδείξουµε ότι υπάρχει µια συνάρτηση σύγκλισης προς µια νόµιµη/ευσταθή εκτέλεση Αποδεικνύοντας τη σταθεροποίηση (2) Εποµένως στην απόδειξη λαµβάνουµε υπόψιν µόνο τις εκτελέσεις οι οποίες αρχικά αρχίζουν από το L Λήµµα Εστω ότι Ολες οι τερµατικές καταστάσεις είναι στο L, δηλ. halt(a) L Υπάρχει συνάρτηση f : states(a) W (όπου το W είναι ένα καλά ορισµένο σύνολο) τέτοια ώστε αν κ κ τότε είτε f(κ) > f(κ ) ή κ L Τότε ο A ικανοποιεί τη σύγκλιση Ιδιότητες Σταθεροποιούµενων Αλγόριθµων (1) Τα πλεονεκτήµατα των σταθεροποιούµενων αλγόριθµων σε σχέση µε τους κλασικούς ϐιώσιµους αλγόριθµους 1. Ανοχή Λαθών προσφέρουν πλήρη και αυτόµατη προστασία έναντι όλων των παροδικών αποτυχιών των διεργασιών καθώς συγκλίνουν στην ϕυσιολογική λειτουργία 2. Αρχικοποίηση δεν υπάρχει ουσιαστική ανάγκη για αρχικοποίηση του αλγόριθµου, παρόλαυτά, η τελική συµπεριφορά είναι εγγυηµένη 3. υναµική Τοπολογία Αν συµβεί µια αλλαγή, ο αλγόριθµος συγκλίνει σε µια νέα λύση

Ιδιότητες Σταθεροποιούµενων Αλγόριθµων (2) Τα µειονεκτήµατα των σταθεροποιούµενων αλγόριθµων σε σχέση µε τους κλασικούς ϐιώσιµους αλγόριθµους 1. Αρχικές ασυνέπειες έως ότου ϕτάσουν σε µια ευσταθή, ο αλγόριθµος µπορεί να παράγει κάποιο αναξιόπιστο αποτέλεσµα 2. Υψηλή πολυπλοκότητα λόγω της συνεχόµενης ανταλλαγής πληροφοριών, είναι συνήθως πολύ λιγότερο αποδοτικοί 3. Ελλειψη µεθόδου ανίχνευσης της σταθεροποίησης αδύνατο να γίνει γνωστό µέσα από το σύστηµα πότε έχει διασφαλιστεί µια νόµιµη εκτέλεση, εποµένως οι διεργασίες δεν γνωρίζουν πότε η συµπεριφορά τους έχει γίνει αξιόπιστη Αµοιβαίος Αποκλεισµός Οι διεργασίες διαµοιράζονται ορισµένους κοινούς πόρους Κάποιοι πόροι απαιτούν αποκλειστική πρόσβαση από µία διεργασία µόνο Το µέρος της διεργασίας που χρειάζεται να χειριστεί τον πόρο αποκλειστικά ονοµάζεται κρίσιµο τµήµα (ΚΤ) Απαιτείται συντονισµένη πρόσβαση Κεντρικοποιηµένα Συστήµατα Χρήση semaphores, συντονιστών... Το πρόβληµα του Αµοιβαίου Αποκλεισµού ορίστηκε για πρώτη ϕορά από τον Edsger Dijkstra το 1965 Απαραίτητες ιδιότητες Ασφάλεια (safety) -- µια µόνο από τις διεργασίες µπορεί να αποκτήσει πρόσβαση στον κοινό πόρο σε ένα ορισµένο χρονικό διάστηµα Βιωσιµότητα (liveness) -- αν µια διεργασία επιθυµεί να εισέλθει στο κρίσιµο τµήµα τελικά ϑα το καταφέρει αν ο κοινός πόρος δεν χρησιµοποιείται, τότε όποια διεργασία Ϲητήσει πρόσβαση ϑα πρέπει να την αποκτήσει σε πεπερασµένο χρονικό διάστηµα Ελάχιστες Υποθέσεις Οι διεργασίες έχουν µοναδικές ταυτότητες Κάθε διεργασία έχει µέρη του κώδικα της µε κρίσιµα τµήµατα Για ευκολία οι διεργασίες ανταγωνίζονται για ένα µόνο πόρο εν υπάρχει κάποιο καθολικό ϱολόι Οι διεργασίες επικοινωνούν µε την ανταλλαγή µηνυµάτων Υποθέτουµε ότι τα κανάλια είναι αξιόπιστα, FIFO ιάταξη (ordering) : η άδεια εισόδου στο κρίσιµο τµήµα πρέπει να παραχωρηθεί σύµφωνα µε τη σχέση συνέβη-πριν: οι αιτήσεις των διεργασιών εξυπηρετούνται µε τη σειρά που έχουν εκδοθεί Το δίκτυο είναι δακτύλιος

Κριτήρια Απόδοσης 1. Ορθότητα (Correctness) οι συνθήκες ασφάλειας και ϐιωσιµότητας ισχύουν 2. Πολυπλοκότητα Επικοινωνίας (Communication Complexity) επεξεργασία των αιτήσεων ελαχιστοποιώντας τον αριθµό µηνυµάτων 3. Απόκριση (Latency) ελαχιστοποίηση της καθυστέρησης εισόδου στο κρίσιµο τµήµα Σταθεροποιούµενος (1) 1. Κάθε διεργασία u διατηρεί µια µεταβλητή σ u 0, 1,..., K 1} το K είναι ένα ακέραιος µεγαλύτερος του n 2. Η διεργασία u µπορεί να διαβάσει την µεταβλητή της u 1 και η διεργασία u 0 της u n 1 κατευθυνόµενος δακτύλιος 3. Ολες οι διεργασίες είναι ίσες, εκτός από την διεργασία u 0 4. Η διεργασία u 0 έχει το προνόµιο αν σ 0 = σ n 1 5. Η διεργασία u 0 έχει το προνόµιο αν σ u Σταθεροποιούµενος (2) 1. Μια διεργασία που έχει το προνόµιο µπορεί να αλλάξει την της αφού ολοκληρώσει την εκτέλεση του κρίσιµου τµήµατος 2. Η αλλαγή ς µιας διεργασίας προκαλεί πάντα την απώλεια του προνοµίου της 3. Η διεργασία u 0 µπορεί να εξισώσει τα σ u, ϑέτοντάς αφού είναι ενεργή ϑα ισχύει σ u 4. Η διεργασία u 0 µπορεί να κάνει το σ 0 να µην είναι ίσο µε το σ n 1 ϑέτοντας σ 0 = αφού είναι αρχικά ίσα Σταθεροποιούµενος (3) Κάθε διεργασία u διατηρεί µια µεταβλητή σ u 0, 1,..., K 1}. Η διεργασία το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει Αρχική Κατάσταση σ u 0 0 0 0... 0 0

Σταθεροποιούµενος (3) Κάθε διεργασία u διατηρεί µια µεταβλητή σ u 0, 1,..., K 1}. Η διεργασία το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει Σταθεροποιούµενος (3) Κάθε διεργασία u διατηρεί µια µεταβλητή σ u 0, 1,..., K 1}. Η διεργασία το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει Ενδιάµεσες Καταστάσεις σ u 0 0 0 0... 0 0 Ενδιάµεσες Καταστάσεις σ u 0 1 0 0... 0 0 Σταθεροποιούµενος (3) Κάθε διεργασία u διατηρεί µια µεταβλητή σ u 0, 1,..., K 1}. Η διεργασία το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει Σταθεροποιούµενος (3) Κάθε διεργασία u διατηρεί µια µεταβλητή σ u 0, 1,..., K 1}. Η διεργασία το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει Ενδιάµεσες Καταστάσεις σ u 0 1 1 0... 0 0 Ενδιάµεσες Καταστάσεις σ u 0 1 1 1... 0 0

Σταθεροποιούµενος (3) Κάθε διεργασία u διατηρεί µια µεταβλητή σ u 0, 1,..., K 1}. Η διεργασία το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει Σταθεροποιούµενος (3) Κάθε διεργασία u διατηρεί µια µεταβλητή σ u 0, 1,..., K 1}. Η διεργασία το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει Ενδιάµεσες Καταστάσεις σ u 1 1 1 1... 0 0 Ενδιάµεσες Καταστάσεις σ u 1 1 1 1... 1 0 Σταθεροποιούµενος (3) Κάθε διεργασία u διατηρεί µια µεταβλητή σ u 0, 1,..., K 1}. Η διεργασία το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει Σταθεροποιούµενος (3) Κάθε διεργασία u διατηρεί µια µεταβλητή σ u 0, 1,..., K 1}. Η διεργασία το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει Ενδιάµεσες Καταστάσεις σ u 1 1 1 1... 1 1 Ενδιάµεσες Καταστάσεις σ u 1 2 1 1... 1 1

Σταθεροποιούµενος (3) Κάθε διεργασία u διατηρεί µια µεταβλητή σ u 0, 1,..., K 1}. Η διεργασία το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει Ενδιάµεσες Καταστάσεις σ u 1 2 2 1... 1 1 ιεργασία u 0 while (true) if (myx == prevx) criticalcode(); // Enter Critical Code myx = (myx+1) % K; } sendreceive(myx, prevx); } ιεργασία u i (i 0) while (true) if (myx!= prevx) criticalcode(); // Enter Critical Code myx = prevx; } sendreceive(myx, prevx); } Λειτουργεί σωστά όταν οι διεργασίες ξεκινάνε µε u 0 = u 1 = u 2 =... = u n 1 = 0 Μόνο µία διεργασία αλλάζει κάθε γύρο. Τι ϑα συµβεί αν προκύψει κάποιο σφάλµα; Θέτουµε κάθε διεργασία σε κάποια (οποιαδήποτε) και στην συνέχεια υποθέτουµε ότι κανένα άλλο σφάλµα δεν προκύπτει. Παράδειγµα: 3, 4, 4, 1, 0}. Οι διεργασίες 2, 4 και 5 έχουν το δικαίωµα! Θα µπορέσει το σύστηµα να επανέλθει σε σωστή ; 0, 0, 0, 0, 0} 1, 0, 0, 0, 0} 1, 1, 0, 0, 0} 1, 1, 1, 0, 0} 1, 1, 1, 1, 0} 1, 1, 1, 1, 1} 2, 1, 1, 1, 1} 2, 2, 1, 1, 1} 2, 2, 2, 1, 1} 2, 2, 2, 2, 1} 2, 2, 2, 2, 2}... ιεργασία u 0 αλλάζει απείρως συχνά. Εστω ότι δεν ισχύει δηλ., έστω σ 0 η σταθερή της u 0. Η διεργασία u 1 τελικά αντιγράφει την σ 0 από την διεργασία u 0. Τότε η διεργασία u 2 τελικά αντιγράφει την σ 1 από την... διεργασία u 1. Τότε η διεργασία u n 1 τελικά αντιγράφει την σ n 2 από την διεργασία u n 2. Οπότε η διεργασία u 0 αλλάζει.! Η διεργασία u 0 αλλάζει ως εξής 4, 5, 0, 1, 2, 3, 4, 5, 0,... Η διεργασία u 0 µετά από το πολύ n ϐήµατα ϑα είναι η µοναδική διεργασία µε σ 0 = 0. Στην συνέχεια η τιµή σ 1 ϑα διασχίσει το δίκτυο εξασφαλίζοντας ότι το πολύ 1 διεργασία έχει το δικαίωµα.

Ιδιότητες Αλγόριθµου του Dijkstra (1) Τουλάχιστον µια διεργασία έχει δικαίωµα Αν καµία άλλη, σίγουρα η u 0 Κανένα ϐήµα δεν αυξάνει τον αριθµό των διεργασιών µε δικαίωµα Αυτή που κάνει το ϐήµα χάνει το δικαίωµα Η µόνη που µπορεί να ωφεληθεί είναι η επόµενη Σε κάθε ϐήµα, το πλήθος των διεργασιών που έχει το δικαίωµα να χρησιµοποιήσει το κρίσιµο τµήµα δεν αυξάνει. Ιδιότητες Αλγόριθµου του Dijkstra (2) Η αρχική (δηλ., αµέσως µετά την παύση των σφαλµάτων) µπορεί να έχει το πολύ n διαφορετικές καταστάσεις. Σε οποιαδήποτε αρχική τουλάχιστον 1 απουσιάζει: Στην 4, 4, 1, 0, 2}, η 3 και 5 απουσιάζουν. Μόλις η διεργασία u 0 ϐρεθεί σε µια από τις αρχικές απούσες καταστάσεις, π.χ., 5, τότε όλες οι διεργασίες ϑα αντιγράψουν το 5, προτού η διεργασία u 0 διαβάσει το 5 από την διεργασία u n 1 και αλλάξει σε 0. Ιδιότητες Αλγόριθµου του Dijkstra (3) Το πολύ n(n 1) 2 ϐήµατα γίνονται χωρίς ϐήµα της u 0 Η αρχική κ 0 µπορεί να περιέχει το πολύ n διαφορετικές τιµές Η u 0 µετά από το πολύ n ϐήµατα της ϑα έχει τιµή k που δεν έχουν οι άλλες, οι οποίες απλώς αντιγράφουν τιµές Το k ϑα διασχίσει το δακτύλιο και πριν το επόµενο ϐήµα της u 0 ϑα υπάρχει µόνο µία διεργασία µε δικαίωµα σ1 = σ 2 =... = σ n 1 = σ 0 = k Σύνολο ϐηµάτων για σύγκλιση είναι O(n 2 ) Ιδιότητες Σταθεροποιούµενων Αλγόριθµων (1) Τα πλεονεκτήµατα των σταθεροποιούµενων αλγόριθµων σε σχέση µε τους κλασικούς ϐιώσιµους αλγόριθµους 1. Ανοχή Λαθών προσφέρουν πλήρη και αυτόµατη προστασία έναντι όλων των παροδικών αποτυχιών των διεργασιών καθώς συγκλίνουν στην ϕυσιολογική λειτουργία 2. Αρχικοποίηση δεν υπάρχει ουσιαστική ανάγκη για αρχικοποίηση του αλγόριθµου, παρόλαυτά, η τελική συµπεριφορά είναι εγγυηµένη 3. υναµική Τοπολογία Αν συµβεί µια αλλαγή, ο αλγόριθµος συγκλίνει σε µια νέα λύση

Ιδιότητες Σταθεροποιούµενων Αλγόριθµων (2) Τα µειονεκτήµατα των σταθεροποιούµενων αλγόριθµων σε σχέση µε τους κλασικούς ϐιώσιµους αλγόριθµους 1. Αρχικές ασυνέπειες έως ότου ϕτάσουν σε µια ευσταθή, ο αλγόριθµος µπορεί να παράγει κάποιο αναξιόπιστο αποτέλεσµα 2. Υψηλή πολυπλοκότητα λόγω της συνεχόµενης ανταλλαγής πληροφοριών, είναι συνήθως πολύ λιγότερο αποδοτικοί 3. Ελλειψη µεθόδου ανίχνευσης της σταθεροποίησης αδύνατο να γίνει γνωστό µέσα από το σύστηµα πότε έχει διασφαλιστεί µια νόµιµη εκτέλεση, εποµένως οι διεργασίες δεν γνωρίζουν πότε η συµπεριφορά τους έχει γίνει αξιόπιστη Αναζήτηση κατά Εύρος Αναζήτηση κατά Εύρος Σε ένα ασύγχρονο δίκτυο G, η αναζήτηση κατά εύρος απαιτεί την κατασκευή ενός επικαλυπτικού δέντρου T(G), µε ϱίζα την διεργασία u 0 όπου οι κορυφές που είναι σε απόσταση d από την u 0 στο G, ϐρίσκονται στο επίπεδο d στο δέντρο T(G). Ο αυτο-σταθεροποιούµενος αλγόριθµος πρέπει να ικανοποιεί Σε κάθε ασταθή υπάρχει τουλάχιστον ένας ενεργός κόµβος Σε µια ευσταθή κανένας κόµβος δεν είναι ενεργός, δηλ. το σύστηµα ϐρίσκεται σε αδιέξοδο Για όλες τις αρχικές καταστάσεις και για όλους τους τρόπους επιλογής ενός ενεργού κόµβου, το σύστηµα εξασφαλίζει την σύγκλιση σε µια ευσταθή σε πεπερασµένο αριθµό ϐηµάτων Ο Αλγόριθµος StabBFS Αλγόριθµος StabBFS Κάθε διεργασία u διατηρεί µια µεταβλητή p u όπου αποθηκεύει τον γονέα της στο δέντρο και µια µεταβλητή d u όπου αποθηκεύει την απόσταση της από την u 0 (σύµφωνα µε τις τρέχουσες συνθήκες), αρχικά αν u u 0 : p u =, d u = αλλιώς αν u = u 0 : p u = u 0, d u = 0. Σε κάθε γύρο, κάθε διεργασία u στέλνει την τιµή d u στους γείτονες της. Στην συνέχεια, ελέγχει τις τιµές που έλαβε και αν υπάρχει διεργασία v τέτοια ώστε d v < d u, ϑέτει d u = d v + 1 και την µεταβλητή γονέας µε την ταυτότητα της v. Η u 0 είναι η ϱίζα του δέντρου εκ των προτέρων γνωστή Εστω n το πλήθος των διεργασιών Εστω d(u) η απόσταση της u 0 από την u στο G Η απόσταση ονοµάζεται επίσης και ϐάθος εν είναι απαραίτητο οι διεργασίες να στέλνουν την τιµή d κάθε γύρο Ορισµοί Για το ϐάθος ισχύει 0 d(u) n 1 Σε µια ασταθή κάθε κόµβος εκτός από την ϱίζα u 0 µπορεί να έχει οποιοδήποτε ϐάθος µεταξύ 0 και n 1 Σε µια ασταθή κάθε κόµβος εκτός από την ϱίζα u 0 µπορεί να ϑεωρεί ως γονέα του στο δέντρο οποιοδήποτε κόµβο εκτός της u 0 Για κάθε κόµβο ορίζουµε το σύνολο S u ως εξής S u = v : v = nbrs u d u = min i nbrsu d i }} το σύνολο S u περιέχει όλους τους γειτονικούς κόµβους της u µε ελάχιστο ϐάθος µπορεί να περιέχει περισσότερους από έναν κόµβους αλλά δεν είναι ποτέ άδειο Ολοι οι κόµβοι στο S u έχουν το ίδιο ϐάθος d(s u )

Ευσταθής (1) Ορίζουµε ως ευσταθή κάθε όπου το ακόλουθο καθολικό κατηγόρηµα είναι αληθές u u 0 : d u = d (S u ) + 1 p u S u Ο όρος p u S u σηµαίνει ότι η µεταβλητή γονέας για την διεργασία u περιέχει έναν γειτονικό κόµβο της u Λήµµα 1 Για κάθε συνεκτικό συµµετρικό γράφηµα, η παραπάνω ευσταθής εκφράζει ένα δένδρο αναζήτησης κατά εύρος µε ϱίζα την διεργασία u 0 Ευσταθής (2) Η ϱίζα του δέντρου u 0 έχει σταθερό ϐάθος 0 Εποµένως σε µια ευσταθή, όλοι οι γειτονικοί κόµβοι της u 0 πρέπει να έχουν ϐάθος 1 Αντίστοιχα, οι γειτονικοί κόµβοι των κόµβων που έχουν ϐάθος 1 πρέπει να έχουν ϐάθος 2 Και η µεταβλητή γονέας δείχνει σε ένα κόµβο µε ϐάθος 1 Επεκτείνοντας το επιχείρηµα για όλους τους κόµβους, είναι εµφανές ότι όλες οι µεταβλητές γονέας και τα ϐάθη των κόµβων σε µια ευσταθή ορίζουν ένα δένδρο αναζήτησης κατά εύρος µε ϱίζα την u 0 Με αυτόν τον τρόπο δείχνουµε ότι το Λήµµα 1 ισχύει Ο στόχος του αλγόριθµου είναι να επαναφέρει το σύστηµα σε µια ευσταθή Λειτουργία Αλγόριθµου Βασική ιδέα: όταν το σύστηµα ϐρίσκεται σε µια ασταθή, τουλάχιστον ένας κόµβος είναι σε ϑέση να το αντιληφθεί και να εκτελέσει κάποιες διορθωτικές κινήσεις Ο αλγόριθµος εφαρµόζει έναν απλό οµοιόµορφο κανόνα για όλους τους κόµβους του δικτύου εκτός από την ϱίζα Ο κανόνας αποτελείται από δύο µέρη: έλεγχος και ενέργεια Ο έλεγχος είναι µια λογική συνάρτηση που ϐασίζεται στο ϐάθος του κόµβου και το ϐάθος των γειτονικών κόµβων Η ενέργεια οδηγεί τον κόµβο σε µια τοπικά ευσταθή, αλλάζοντας το ϐάθος του κόµβου και/ή την µεταβλητή γονέας Η διεργασία r είναι η ϱίζα Κάθε κόµβος έχει ένα διακριτικό και το ϐάθος του στο δένδρο Η κατεύθυνση της ακµής απεικονίζει την µεταβλητή γονέας Σε κάθε γύρο, ο ενεργός κόµβος είναι υπογραµµισµένος Ο κόµβος r δεν γίνεται ποτέ ενεργός Αρχικά ο κόµβος e γίνεται ενεργός u u 0 d (S u ) n 1 d u d (S u ) + 1 p u S u } = d u = d (S u ) + 1; p u = v, v S u Υπάρχουν πολλές διαφορετικές εκτελέσεις για να καταλήξουµε σε µια ευσταθή ξεκινώντας από την ίδια αρχική Σε αυτό το παράδειγµα, ο αλγόριθµος συγκλίνει σε 6 ϐήµατα

Η διεργασία r είναι η ϱίζα Κάθε κόµβος έχει ένα διακριτικό και το ϐάθος του στο δένδρο Η κατεύθυνση της ακµής απεικονίζει την µεταβλητή γονέας Σε κάθε γύρο, ο ενεργός κόµβος είναι υπογραµµισµένος Ο κόµβος r δεν γίνεται ποτέ ενεργός Αρχικά ο κόµβος e γίνεται ενεργός Υπάρχουν πολλές διαφορετικές εκτελέσεις για να καταλήξουµε σε µια ευσταθή ξεκινώντας από την ίδια αρχική Σε αυτό το παράδειγµα, ο αλγόριθµος συγκλίνει σε 6 ϐήµατα Η διεργασία r είναι η ϱίζα Κάθε κόµβος έχει ένα διακριτικό και το ϐάθος του στο δένδρο Η κατεύθυνση της ακµής απεικονίζει την µεταβλητή γονέας Σε κάθε γύρο, ο ενεργός κόµβος είναι υπογραµµισµένος Ο κόµβος r δεν γίνεται ποτέ ενεργός Αρχικά ο κόµβος e γίνεται ενεργός Υπάρχουν πολλές διαφορετικές εκτελέσεις για να καταλήξουµε σε µια ευσταθή ξεκινώντας από την ίδια αρχική Σε αυτό το παράδειγµα, ο αλγόριθµος συγκλίνει σε 6 ϐήµατα Η διεργασία r είναι η ϱίζα Κάθε κόµβος έχει ένα διακριτικό και το ϐάθος του στο δένδρο Η κατεύθυνση της ακµής απεικονίζει την µεταβλητή γονέας Σε κάθε γύρο, ο ενεργός κόµβος είναι υπογραµµισµένος Ο κόµβος r δεν γίνεται ποτέ ενεργός Αρχικά ο κόµβος e γίνεται ενεργός Υπάρχουν πολλές διαφορετικές εκτελέσεις για να καταλήξουµε σε µια ευσταθή ξεκινώντας από την ίδια αρχική Σε αυτό το παράδειγµα, ο αλγόριθµος συγκλίνει σε 6 ϐήµατα Η διεργασία r είναι η ϱίζα Κάθε κόµβος έχει ένα διακριτικό και το ϐάθος του στο δένδρο Η κατεύθυνση της ακµής απεικονίζει την µεταβλητή γονέας Σε κάθε γύρο, ο ενεργός κόµβος είναι υπογραµµισµένος Ο κόµβος r δεν γίνεται ποτέ ενεργός Αρχικά ο κόµβος e γίνεται ενεργός Υπάρχουν πολλές διαφορετικές εκτελέσεις για να καταλήξουµε σε µια ευσταθή ξεκινώντας από την ίδια αρχική Σε αυτό το παράδειγµα, ο αλγόριθµος συγκλίνει σε 6 ϐήµατα

Η διεργασία r είναι η ϱίζα Κάθε κόµβος έχει ένα διακριτικό και το ϐάθος του στο δένδρο Η κατεύθυνση της ακµής απεικονίζει την µεταβλητή γονέας Σε κάθε γύρο, ο ενεργός κόµβος είναι υπογραµµισµένος Ο κόµβος r δεν γίνεται ποτέ ενεργός Αρχικά ο κόµβος e γίνεται ενεργός Υπάρχουν πολλές διαφορετικές εκτελέσεις για να καταλήξουµε σε µια ευσταθή ξεκινώντας από την ίδια αρχική Σε αυτό το παράδειγµα, ο αλγόριθµος συγκλίνει σε 6 ϐήµατα Η διεργασία r είναι η ϱίζα Κάθε κόµβος έχει ένα διακριτικό και το ϐάθος του στο δένδρο Η κατεύθυνση της ακµής απεικονίζει την µεταβλητή γονέας Σε κάθε γύρο, ο ενεργός κόµβος είναι υπογραµµισµένος Ο κόµβος r δεν γίνεται ποτέ ενεργός Αρχικά ο κόµβος e γίνεται ενεργός Υπάρχουν πολλές διαφορετικές εκτελέσεις για να καταλήξουµε σε µια ευσταθή ξεκινώντας από την ίδια αρχική Σε αυτό το παράδειγµα, ο αλγόριθµος συγκλίνει σε 6 ϐήµατα Η διεργασία r είναι η ϱίζα Κάθε κόµβος έχει ένα διακριτικό και το ϐάθος του στο δένδρο Η κατεύθυνση της ακµής απεικονίζει την µεταβλητή γονέας Σε κάθε γύρο, ο ενεργός κόµβος είναι υπογραµµισµένος Ο κόµβος r δεν γίνεται ποτέ ενεργός Αρχικά ο κόµβος e γίνεται ενεργός Υπάρχουν πολλές διαφορετικές εκτελέσεις για να καταλήξουµε σε µια ευσταθή ξεκινώντας από την ίδια αρχική Σε αυτό το παράδειγµα, ο αλγόριθµος συγκλίνει σε 6 ϐήµατα Απόδειξη Ορθότητας (1) Ο στόχος µας είναι να αποδείξουµε τα τρία κριτήρια που ϑέσαµε αρχικά Λήµµα 2 Σε κάθε ασταθή υπάρχει τουλάχιστον ένας ενεργός κόµβος Σε µια ευσταθή κανένας κόµβος δεν είναι ενεργός, δηλ. το σύστηµα ϐρίσκεται σε αδιέξοδο Για όλες τις αρχικές καταστάσεις και για όλους τους τρόπους επιλογής ενός ενεργού κόµβου, το σύστηµα εξασφαλίζει την σύγκλιση σε µια ευσταθή σε πεπερασµένο αριθµό ϐηµάτων Σε µια ευσταθή κανένας κόµβος δεν είναι ενεργός Προκύπτει από τον κανόνα

Απόδειξη Ορθότητας (2) Λήµµα 3 Σε κάθε ασταθή υπάρχει τουλάχιστον ένας ενεργός κόµβος, δηλ. σε κάθε ασταθή είναι εγγυηµένο ότι κάποιος κόµβος ϑα εκτελέσει µια ενέργεια Αποδεικνύουµε το λήµµα µε εις άτοπον απαγωγή Εστω ότι υπάρχει µια ασταθή όπου κανένας κόµβος δεν είναι ενεργός Τότε υπάρχει ένας κόµβος u u 0 τέτοιος ώστε ισχύει ότι d u d (S u ) + 1 ή p u S u ή και τα δυο Τότε το S u πρέπει να έχει ϐάθος n 1 αλλιώς ο κόµβος u ϑα γινόταν ενεργός λόγο του κανόνα Ας ϑεωρήσουµε τώρα όλους τους γειτονικοί κόµβοι του u 0 (που έχει ϐάθος 0) Αυτοί οι κόµβοι έχουν ϐάθος 1 Απόδειξη Ορθότητας (3) Στην συνέχεια ϑεωρούµε όλους τους γειτονικούς κόµβους αυτών των κόµβων Αυτοί οι κόµβοι έχουν ϐάθος 2 Συνεχίζουµε κατά αυτόν τον τρόπο έως ότου εξαντλήσουµε όλους τους κόµβους του δικτύου Στην χειρότερη περίπτωση ένας κόµβος v µπορεί να έχει ϐάθος n 1... το γράφηµα είναι γραµµή / αλυσίδα µήκους n 1 Ακόµα και τότε το S u είναι αυστηρά µικρότερο του n 1 Εποµένως όταν κανένας κόµβος δεν είναι ενεργός, δεν µπορούµε να εντοπίσουµε έναν κόµβο u που να ικανοποιεί την αρχική µας υπόθεση Με αυτόν τον τρόπο δείχνουµε ότι το Λήµµα 3 ισχύει Απόδειξη Ορθότητας (4) Λήµµα 4 Ανεξαρτήτως της αρχικής ς και ανεξαρτήτως της σειράς ενεργοποίησης των κόµβων, το σύστηµα είναι εγγυηµένο ότι ϑα καταλήξει σε µια ευσταθή σε πεπερασµένο αριθµό ϐηµάτων Εφόσον το πλήθος των καταστάσεων είναι πεπερασµένο, αρκεί να δείξουµε ότι ξεκινώντας από οποιαδήποτε αρχική ασταθή, το σύστηµα δεν µπορεί να επανέρθει στην ίδια αρχική Εστω η x-οστή και y-οστή είναι πανοµοιότυπες και x y Η x-οστή είναι η που ϐρίσκεται το σύστηµα µετά από x ενέργειες, ξεκινώντας από την αρχική ασταθή Απόδειξη Ορθότητας (5) Επίσης υποθέτουµε ότι στην x-οστή ο κόµβος u (µπορεί και άλλοι κόµβοι) είναι ενεργός Αρα ο u ϑα εκτελέσει την ενέργεια x + 1 Εξετάζουµε αναλυτικά τις πιθανές ενέργειες που µπορεί να εκτελέσει ο u 1. Ο u µειώνει το ϐάθος κατά k 1 2. Ο u αυξάνει το ϐάθος κατά k 1 Και στις δύο περιπτώσεις επιχειρηµατολογούµε µε αντίστοιχο τρόπο Ας εξετάσουµε την 1η περίπτωση Πρέπει να υπάρχει κάποιος κόµβος v S u γειτονικός στον u µε ϐάθος d u k 1 που οδήγησε τον u να κάνει µια ενέργεια Για να µπορέσουµε όµως να ϐρεθούµε στην y(= x) ϑα πρέπει το d(s u ) να αυξηθεί κατά k.

Απόδειξη Ορθότητας (6) Αρα πρέπει ένας τουλάχιστον γειτονικός κόµβος του u, i να αυξήσει το ϐάθος του, d i κατά k. Για να γίνει όµως αυτό πρέπει να υπάρχει κόµβος j S i µε ϐάθος d j = d i + k 1 που να οδηγήσει τον i να κάνει την επιθυµητή ενέργεια. Εστω ότι υπάρχει τέτοιο j τέτοιο ώστε j S i και d(s i ) = d i + k 1 και έστω d i η νέα τιµή του d i (d i = d i + k). Τώρα όµως το ϐάθος του κόµβου i διαφέρει από το ϐάθος που είχε στην x (και συνεπώς στην y όπου ϑέλουµε να καταλήξουµε) Συνεπώς τώρα ένας γειτονικός κόµβος του i πρέπει να τον επαναφέρει στο προηγούµενό του ϐάθος (πρέπει να ξαναλλάξει δηλαδή το d(s i )) Απόδειξη Ορθότητας (7) Συνεχίζοντας µε την ίδια λογική, πάντα κάποιος κόµβος πρέπει να αλλάζει το ϐάθος του για να διορθώνει αυτούς των οποίων τα ϐάθη διαφέρουν από αυτά της ς y. Συνεπώς ποτέ δεν µπορούµε να καταλήξουµε στην ίδια. Σύνοψη 7 ης ιάλεξης Σύνοψη Μαθήµατος Σταθεροποίηση / Αυτο-σταθεροποιούµενοι αλγόριθµοι Προηγούµενο Μάθηµα Προηγούµενο Μάθηµα Σύγχρονα Κατανεµηµένα Συστήµατα Σταθεροποίηση Σταθεροποιούµενοι Κατανεµηµένοι Αλγόριθµοι Αµοιβαίος Αποκλεισµός Σταθεροποιούµενες Κατανεµηµένες οµές Βασικές Εννοιες - ορισµοί Ιδιότητες Αυτο-σταθεροποιούµενοι αλγόριθµοι Αλγόριθµος Dijkstra -- Αµοιβαίος Αποκλεισµός Αλγόριθµος StabBFS -- Αναζήτηση κατά Εύρος Σύνοψη Μαθήµατος Σύνοψη Μαθήµατος Βιβλιογραφία Επόµενο Μάθηµα

Βιβλιογραφία Τόµος ΙΙ από τις Πανεπιστηµιακές Σηµειώσεις Θεµελιώδη Ζητήµατα Κατανεµηµένων Συστηµάτων (Π.Σπυράκης, Β.Ταµπακάς): 1. Κεφάλαιο 4: Κατανεµηµένα Συστήµατα µε Ανοχή σε Σφάλµατα Βιβλίο Introduction to Distributed Algorithms" (G.Tel) 1. Κεφάλαιο 13: Fault Tolerance in Distributed Systems 2. Κεφάλαιο 17: Stabilization Επόµενο Μάθηµα Ασύγχρονα Κατανεµηµένα Συστήµατα ιάταξη Γεγονότων Σχέση συνέβη-πριν Λογικός Χρόνος Λογικά Ρολόγια Lamport Αµοιβαίος Αποκλεισµός Συγκεντρωτική Λύση Χρήση Λογικών Ρολογιών Χρήση Λογικών οµών