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

Σχετικά έγγραφα
Χειµερινό Εξάµηνο

Χειµερινό Εξάµηνο

Χειµερινό Εξάµηνο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Έρευνα στα Ασύρματα Δίκτυα Αισθητήρων WSN

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

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

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

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

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

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

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

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

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

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

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

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

Consensus and related problems

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

Search and Replication in Unstructured Peer-to-Peer Networks

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

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

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

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

Η εφαρµογή xsortlab. Οπτικός τρόπος ταξινόµησης

ιαδίκτυα & Ενδοδίκτυα Η/Υ

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

Προγραµµατισµός 2 The shell

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

Διάλεξη 3: Αλγόριθμοι σε Γράφους ΙΙ. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

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

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

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

Τµήµα Πληροφορικής. Δοµές Δεδοµένων - Εργασία 2. Φθινοπωρινό Εξάµηνο Διδάσκων: E. Μαρκάκης

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

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

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

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

Δίκτυα Απευθείας Ζεύξης. Επικοινωνία µεταξύ δύο υπολογιστών οι οποίοι είναι απευθείας συνδεδεµένοι.

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

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

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

Αναζήτηση Κατά Πλάτος

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

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

«Συγχρονισμός ρολογιών υπό την παρουσία σφαλμάτων»

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

Μάθημα 5 ο : Μετάδοση Μηνυμάτων

Ιδιοκτησία Αντικειµένου

ΤΕΙ Κρήτης, Παράρτηµα Χανίων

Εργαστηριακή Άσκηση 4

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

Ασκηση 1 [ ] Παράδοση : Τετάρτη , 13:00

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

Ο έλεγχος στο επίπεδο συστήµατος επικοινωνιών εξασφαλίζει ότι έχουµε µεταφορά στο δίκτυο χωρίς λάθη.

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

Αλγόριθµοι Γραφηµάτων

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

Outlook Express-User Instructions.doc 1

Transcript:

Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Ιωάννης Χατζηγιαννάκης ευτέρα, 12 Ιανουαρίου, 2009 Αίθουσα Β3 Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 1 / 51

1ο Εργαστήριο: Υλοποίηση Αλγόριθµων Εκλογής Αρχηγού Πρόβληµα Εκλογής Αρχηγού Η εκλογή αρχηγού σε ένα δίκτυο απαιτεί την επιλογή µιας µοναδικής διεργασίας που ϑα ϐρεθεί στην κατάσταση αρχηγός (ή εκλεγµένη ) ενώ όλες οι άλλες διεργασίες ϐρίσκονται στην κατάσταση µη-αρχηγός (ή µη εκλεγµένη ). ύο τύποι δικτύων: ίκτυα ακτυλίου, Γενικά ίκτυα Τρείς αλγόριθµοι: LCR, FloodMax, OptFloodMax Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 2 / 51

1ο Εργαστήριο: Συµπεράσµατα Ποιά ήταν τα πειραµατικά αποτελέσµατα ; Σε τι διαφέρουν απο τα ϑεωρητικά αποτελέσµατα ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 3 / 51

1ο Εργαστήριο: Συµπεράσµατα Ταυτόχρονη εκκίνηση διεργασιών. Συγχρονισµένη εκτέλεση ϐηµάτων. εν είναι σαφές τι είναι ενα ϐήµα. Τα ϱολόγια των διεργασιών δεν ειναι συγχρονισµένα. ιαχείρηση συµβάντων λειτουργικού συστήµατος. Χρήση timer. Υλοποίηση OptFloodMax. Εκτέλεση γενικού αλγόριθµου σε ειδική τοπολογία. Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 4 / 51

2ο Εργαστήριο: Υλοποίηση Αλγόριθµων Κατασκευής Επικαλυπτικών έντρων Πρόβληµα Κατασκευής Επικαλυπτικού ένδρου Ενα επικαλυπτικό δέντρο T(G) ενός δικτύου G περιέχει όλες τις διεργασίες του δικτύου (κορυφές) και ορισµένα (ίσως όλα) κανάλια επικοινωνίας (ακµές). Η κατασκευή ενός επικαλυπτικού δέντρου προυποθέτει την επιλογή µιας διεργασίας u 0 που ϑα είναι η ϱίζα του δέντρου T(G). Γενικά ίκτυα Τρείς αλγόριθµοι: SpanningTree, SpanningTreeHeight, BFS Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 5 / 51

2ο Εργαστήριο: Συµπεράσµατα Ποιά ήταν τα πειραµατικά αποτελέσµατα ; Σε τι διαφέρουν απο τα ϑεωρητικά αποτελέσµατα ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 6 / 51

2ο Εργαστήριο: Συµπεράσµατα Απώλεια µηνυµάτων. Απόκληση από τις ϑεωρητικές πολυπλοκότητες. Σεβασµός στα Interface. Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 7 / 51

Αλγόριθµοι Συναίνεσης Πρόβληµα Συναίνεσης Σε ένα σύγχρονο δίκτυο G, η συναίνεση απαιτεί την κοινή επιλογής µιας µοναδικής τιµής απο όλες τις διεργασίες του συστήµατος. Οταν οι διεργασίες καταλήξουν σε µια κοινά αποδεκτή απόφαση, όλες οι διεργασίες τερµατίζουν. Οι διεργασίες ξεκινούν µε µία αρχική τιµή, την επεξεργάζονται και εξάγουν µια τελική τιµή εκτελούν έναν κατανεµηµένο αλγόριθµο συναίνεσης αποφασίζουν απο κοινού µια µοναδική τιµή Η απόφαση είναι κοινή π.χ. µια διεργασία µε τιµή ναι, πως µπορεί να δεχτεί µια κοινή απόφαση όχι ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 8 / 51

Παράδειγµα Αυτόµατου Αλγόριθµου Συναίνεσης Παράδειγµα διεργασίας που συµµετέχει στην εκτέλεση ενός κατανεµηµένου αλγόριθµου συναίνεσης Η κατάσταση της P u καθορίζεται από Η διεργασία P u init(v) u decide(v) u τις τιµές των άλλων διεργασιών αν έχει ανακοινώσει την απόφαση της Οι ενέργειες εισόδου είναι της µορφής init(v) u και receive(m) v,u Οι ενέργειες εξόδου είναι της µορφής decide(v) u και send(m) u,v send(m) u,v P u receive(m) v,u Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 9 / 51

Είσοδος/ Εξοδος στα ανώτερα επίπεδα (1) Ορίζουµε το interface ConsensusControl ως εξής: command result_t init(uint16_t deviceid, uint8_t value) αρχικοποιεί τις εσωτερικές µεταβλητές του αλγόριθµου. Η παράµετρος deviceid υποδηλώνει την ταυτότητα που ϑα χρησιµοποιήσει η διεργασία. Η παράµετρος value υποδηλώνει την τιµή εισόδου που ϑα χρησιµοποιήσει η διεργασία ως είσοδο. Το command επιστρέφει πάντα SUCCESS. command result_t start() ξεκινά τη διαδικασία συναίνεσης. Επιστρέφει πάντα SUCCESS. Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 10 / 51

Είσοδος/ Εξοδος στα ανώτερα επίπεδα (2) command uint8_t getvalue() επιστρέφει την τιµή που αποφασίσαν οι διεργασίες, αλλιώς UNKNOWN_VALUE αν η διαδικασία συναίνεσης δεν έχει ολοκληρωθεί. event result_t done(uint8_t value) όταν ο αλγόριθµος συναίνεσης ολοκληρωθεί, δηµιουργείται ένα event όπου η παράµετρος value δηλώνει την κοινή τιµή που αποφάσισαν οι διεργασίες. Το event επιστρέφει πάντα SUCCESS. Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 11 / 51

ConsensusControl.nc i n t e r f a c e ConsensusControl { async command r e s u l t _ t i n i t ( u i n t 1 6 _ t deviceid, u i n t 8 _ t value ) ; async command u i n t 8 _ t getvalue ( ) ; async command r e s u l t _ t s t a r t ( ) ; event r e s u l t _ t done ( u i n t 8 _ t value ) ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 12 / 51

Κατανεµηµένη Συναίνεση Αλγόριθµος Συναίνεσης SimpleConsensus Κάθε διεργασία u [1, n] διατηρεί µια λίστα l u µε Ϲεύγη από ταυτότητες και τιµές εισόδου, η οποία αρχικά περιέχει ένα µόνο Ϲεύγος, την ταυτότητα της u και την τιµή εισόδου i u S. Σε κάθε γύρο, οι διεργασίες εκπέµπουν την λίστα l σε όλους τους γείτονες. Μόλις λάβουν µία λίστα l v απο κάποιον γείτονα v, την ενοποιούν µε την δικιά τους. Μετά απο δ + 1 γύρους, όλες οι διεργασίες διατηρούν µια λίστα που περιέχει ένα Ϲεύγος (u, i u ) για κάθε διεργασία του συστήµατος. Εφαρµόζουν τους κανόνες συναίνεσης και τερµατίζουν επιστρέφοντας την κοινή τιµή εξόδου o S. Κάθε διεργασία γνωρίζει τη δοµή του γραφήµατος G Ο αλγόριθµος λύνει το πρόβληµα της συναίνεσης Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 13 / 51

Παράδειγµα Εκτέλεσης Αλγόριθµου SimpleConsensus Εστω ένα σύγχρονο γενικό δίκτυο όπου n = 6 και δ = 2. Οι διεργασίες έχουν µια τιµή εισόδου (ϱοζ κουτί) Οι διεργασίες διατηρούν µια λίστα (µπλέ κουτί) Οι διεργασίες έχουν µια τιµή εξόδου (κίτρινο κουτί) Ο κανόνας συναίνεσης ϐασίζεται σε απλή πλειοψηφία Γενικό ίκτυο Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 14 / 51

Παράδειγµα Εκτέλεσης Αλγόριθµου SimpleConsensus Εστω ένα σύγχρονο γενικό δίκτυο όπου n = 6 και δ = 2. Οι διεργασίες έχουν µια τιµή εισόδου (ϱοζ κουτί) Οι διεργασίες διατηρούν µια λίστα (µπλέ κουτί) Οι διεργασίες έχουν µια τιµή εξόδου (κίτρινο κουτί) Ο κανόνας συναίνεσης ϐασίζεται σε απλή πλειοψηφία 1ος Γύρος αποστολή µηνυµάτων Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 14 / 51

Παράδειγµα Εκτέλεσης Αλγόριθµου SimpleConsensus Εστω ένα σύγχρονο γενικό δίκτυο όπου n = 6 και δ = 2. Οι διεργασίες έχουν µια τιµή εισόδου (ϱοζ κουτί) Οι διεργασίες διατηρούν µια λίστα (µπλέ κουτί) Οι διεργασίες έχουν µια τιµή εξόδου (κίτρινο κουτί) Ο κανόνας συναίνεσης ϐασίζεται σε απλή πλειοψηφία 1ος Γύρος επεξεργασία Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 14 / 51

Παράδειγµα Εκτέλεσης Αλγόριθµου SimpleConsensus Εστω ένα σύγχρονο γενικό δίκτυο όπου n = 6 και δ = 2. Οι διεργασίες έχουν µια τιµή εισόδου (ϱοζ κουτί) Οι διεργασίες διατηρούν µια λίστα (µπλέ κουτί) Οι διεργασίες έχουν µια τιµή εξόδου (κίτρινο κουτί) Ο κανόνας συναίνεσης ϐασίζεται σε απλή πλειοψηφία 2ος Γύρος αποστολή µηνυµάτων Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 14 / 51

Παράδειγµα Εκτέλεσης Αλγόριθµου SimpleConsensus Εστω ένα σύγχρονο γενικό δίκτυο όπου n = 6 και δ = 2. Οι διεργασίες έχουν µια τιµή εισόδου (ϱοζ κουτί) Οι διεργασίες διατηρούν µια λίστα (µπλέ κουτί) Οι διεργασίες έχουν µια τιµή εξόδου (κίτρινο κουτί) Ο κανόνας συναίνεσης ϐασίζεται σε απλή πλειοψηφία 2ος Γύρος επεξεργασία Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 14 / 51

Παράδειγµα Εκτέλεσης Αλγόριθµου SimpleConsensus Εστω ένα σύγχρονο γενικό δίκτυο όπου n = 6 και δ = 2. Οι διεργασίες έχουν µια τιµή εισόδου (ϱοζ κουτί) Οι διεργασίες διατηρούν µια λίστα (µπλέ κουτί) Οι διεργασίες έχουν µια τιµή εξόδου (κίτρινο κουτί) Ο κανόνας συναίνεσης ϐασίζεται σε απλή πλειοψηφία 3ος Γύρος αποστολή µηνυµάτων Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 14 / 51

Παράδειγµα Εκτέλεσης Αλγόριθµου SimpleConsensus Εστω ένα σύγχρονο γενικό δίκτυο όπου n = 6 και δ = 2. Οι διεργασίες έχουν µια τιµή εισόδου (ϱοζ κουτί) Οι διεργασίες διατηρούν µια λίστα (µπλέ κουτί) Οι διεργασίες έχουν µια τιµή εξόδου (κίτρινο κουτί) Ο κανόνας συναίνεσης ϐασίζεται σε απλή πλειοψηφία 3ος Γύρος επεξεργασία Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 14 / 51

Παράδειγµα Εκτέλεσης Αλγόριθµου SimpleConsensus Εστω ένα σύγχρονο γενικό δίκτυο όπου n = 6 και δ = 2. Οι διεργασίες έχουν µια τιµή εισόδου (ϱοζ κουτί) Οι διεργασίες διατηρούν µια λίστα (µπλέ κουτί) Οι διεργασίες έχουν µια τιµή εξόδου (κίτρινο κουτί) Ο κανόνας συναίνεσης ϐασίζεται σε απλή πλειοψηφία 3ος Γύρος απόφαση Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 14 / 51

Χαρακτηριστικά του Αλγόριθµου SimpleConsensus Σε ένα σύγχρονο δίκτυο G µε n διεργασίες και m κανάλια Στο τέλος του γύρου δ κάθε διεργασία u [1, n] διατηρεί µια λίστα l u = {(1, i 1 ), (2, i 2 ),..., (n, i n ) Ολες οι διεργασίες έχουν κοινές λίστες, δηλ. u [1, n] : l u = l Η χρονική πολυπλοκότητα είναι O (diam(g)) Η πολυπλοκότητα επικοινωνίας είναι O (diam(g) m) Η πολυπλοκότητα επικοινωνίας σε bit είναι O (diam(g) n m) Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 15 / 51

SimpleConsensusM.nc module SimpleConsensusM { p r o v i d e s { i n t e r f a c e ConsensusControl ; uses { i n t e r f a c e SendMsg ; i n t e r f a c e ReceiveMsg ; i n t e r f a c e T i m e r ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 16 / 51

SimpleConsensusM.nc enum { UNKNOWN_VALUE = 254, TOT_NODES = 5, TOT_ROUNDS = 2 ; implementation { u i n t 1 6 _ t m_id ; u i n t 8 _ t m _ i n i t V a l u e ; u i n t 8 _ t m_values [ TOT_NODES ] ; u i n t 8 _ t m_decision ; u i n t 8 _ t m_msgcount ; TOS_Msg m_msg ; / /... Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 17 / 51

οµή Μηνυµάτων /opt/tinyos-1.x/tos/types/am.h # define TOSH_DATA_LENGTH 29 typedef s t r u c t TOS_Msg { u i n t 1 6 _ t addr ; u i n t 8 _ t type ; u i n t 8 _ t group ; u i n t 8 _ t length ; i n t 8 _ t data [ TOSH_DATA_LENGTH ] ; u i n t 1 6 _ t crc ; u i n t 1 6 _ t s t r e n g t h ; u i n t 8 _ t ack ; u i n t 1 6 _ t time ; u i n t 8 _ t sendsecuritymode ; u i n t 8 _ t receivesecuritymode ; TOS_Msg ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 18 / 51

οµή Μηνυµάτων του SimpleConsensusM ConsensusMsg.h typedef s t r u c t ConsensusMsg { u i n t 1 6 _ t i d ; u i n t 8 _ t values [ TOT_NODES ] ; ConsensusMsg ; enum { AM_CONSENSUSMSG = 16 ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 19 / 51

Ουρά FIFO µε µηνύµατα Το TinyOS υλοποιεί ένα component για την τοποθέτηση µηνυµάτων σε FIFO ουρά. Προσφέρει το interface SendMsg και απαιτεί ένα interface SendMsg Στην ουσία το συνδέουµε στο interface SendMsg του αλγορίθµου µε το interface SendMsg του GenericComm Κάθε ϕορά που κάνουµε send το µήνυµα µπαίνει αυτόµατα στην ουρά η ουρά αναλαµβάνει την τελική αποστολή Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 20 / 51

ιασύνδεση SimpleConsensus.nc c o n f i g u r a t i o n SimpleConsensus { p r o v i d e s i n t e r f a c e S t d C o n t r o l ; p r o v i d e s i n t e r f a c e ConsensusControl ; implementation { components SimpleConsensusM, QueuedSend, GenericComm, TimerC ; SimpleConsensusM. SendMsg > QueuedSend. SendMsg [ AM_CONSENSUSMS SimpleConsensusM. ReceiveMsg > GenericComm. ReceiveMsg [AM_CON SimpleConsensusM. T i mer > TimerC. T i m e r [ unique ( " T imer " ) ] ; S t d C o n t r o l = GenericComm ; S t d C o n t r o l = QueuedSend ; ConsensusControl = SimpleConsensusM ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 21 / 51

SimpleConsensusM.nc async command r e s u l t _ t ConsensusControl. i n i t ( u i n t 1 6 _ t deviceid, u i n t 8 _ t value ) { u i n t 8 _ t i ; atomic { m_id = deviceid ; m _ i n i t V a l u e = value ; m_ decision = UNKNOWN_VALUE ; m_msgcount = 0 ; / / I n i t i a l i z e a r r a y f o r ( i = 0 ; i <TOT_NODES ; i ++) m_values [ i ] = UNKNOWN_VALUE ; dbg ( DBG_TEMP, " SimpleConsensus : i n i t i a l i z e d. \ n " ) ; r e t u r n SUCCESS ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 22 / 51

SimpleConsensusM.nc async command r e s u l t _ t ConsensusControl. s t a r t ( ) { u i n t 8 _ t d e c i s i o n ; atomic d e c i s i o n = m_decision ; / / Check i f already f i n i s h e d i f ( d e c i s i o n! = UNKNOWN_VALUE) r e t u r n F A I L ; atomic m_values [ m_id ] = m _ i n i t V a l u e ; dbg ( DBG_TEMP, " SimpleConsensus : s t a r t e d w i t h i n i t i a l value %d / / S t a r t the t i m e r c a l l T i m e r. s t a r t ( TIMER_REPEAT, 1 0 0 0 ) ; r e t u r n SUCCESS ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 23 / 51

SimpleConsensusM.nc event r e s u l t _ t T i m e r. f i r e d ( ) { u i n t 1 6 _ t msgcount ; atomic msgcount = m_msgcount ; / / Check i f number of t o t a l t r a n s m i t i o n s reached i f ( msgcount > TOT_ROUNDS ) { c a l l T i m e r. stop ( ) ; post reportdone ( ) ; r e t u r n SUCCESS ; post sendmessage ( ) ; r e t u r n SUCCESS ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 24 / 51

SimpleConsensusM.nc t a s k void sendmessage ( ) { / / Access message body ConsensusMsg msgdata = ( ConsensusMsg ) m_msg. data ; u i n t 8 _ t i ; / / Set message contents msgdata >i d = m_id ; atomic f o r ( i = 0 ; i <TOT_NODES ; i ++) msgdata >values [ i ] = m_values [ i ] ; / / T r y to send the message c a l l SendMsg. send ( TOS_BCAST_ADDR, s i z e o f ( ConsensusMsg ), &m_m Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 25 / 51

SimpleConsensusM.nc event r e s u l t _ t SendMsg. senddone ( TOS_MsgPtr msg, bool success ) atomic m_msgcount + +; r e t u r n SUCCESS ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 26 / 51

SimpleConsensusM.nc t a s k void sendmessage ( ) { / / Access message body ConsensusMsg msgdata = ( ConsensusMsg ) m_msg. data ; u i n t 8 _ t i ; / / Set message contents msgdata >i d = m_id ; atomic f o r ( i = 0 ; i <TOT_NODES ; i ++) msgdata >values [ i ] = m_values [ i ] ; / / T r y to send the message c a l l SendMsg. send ( TOS_BCAST_ADDR, s i z e o f ( ConsensusMsg ), &m_m Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 27 / 51

SimpleConsensusM.nc event TOS_MsgPtr ReceiveMsg. r e c e i v e ( TOS_MsgPtr recv_ packet ) { / / Access message body ConsensusMsg msgdata = ( ConsensusMsg ) recv_packet >data ; u i n t 8 _ t i ; / / Merge received s e t w i t h l o c a l copy atomic f o r ( i = 0 ; i < TOT_NODES ; i ++) { i f ( msgdata >values [ i ]! = UNKNOWN_VALUE) m_values [ i ] = msgdata >values [ i ] ; r e t u r n recv_packet ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 28 / 51

SimpleConsensusM.nc t a s k void reportdone ( ) { u i n t 8 _ t i, decision, maxvalue, allsame ; atomic { allsame = 0 ; maxvalue = m_values [ 0 ] ; d e c i s i o n = m_values [ 0 ] ; f o r ( i = 1 ; i < TOT_NODES ; i ++) { i f ( m_values [ i ] > maxvalue ) maxvalue = m_values [ i ] ; i f ( m_values [ i ]! = d e c i s i o n ) allsame = 1 ; i f ( allsame == 1) d e c i s i o n = maxvalue ; m_decision = d e c i s i o n ; s i g n a l ConsensusControl. done ( d e c i s i o n ) ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 29 / 51

SimpleConsensusM.nc async command u i n t 8 _ t ConsensusControl. getvalue ( ) { r e t u r n m_decision ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 30 / 51

οκιµαστική Εφαρµογή Θέλουµε µια απλή εφαρµογή για να ελέγξουµε τον αλγόριθµο Να µετρήσουµε την απόδοση του σε διαφορετικές τοπολογιες Η εφαρµογή δίνει µια ταυτότητα στον αλγόριθµο και όταν τελειώσει εξάγει το αποτέλεσµα χρησιµοποιώντας καποια LED Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 31 / 51

Χρήση Timer Εφόσον έχουµε να κάνουµε µε ένα ασύγχρονο σύστηµα, υπάρχει περίπτωση οι συσκευές να µη ξεκινήσουν ταυτόχρονα αλλά να υπάρχει µια χρονική καθυστέρηση. Θέλουµε να εξασφαλίσουµε ότι όλες οι συσκευές του συστήµατος είναι ενεργοποιηµένες και συµµετέχουν στην εκλογή αρχηγού. Χρησιµοποιούµε ένα Timer για να καθυστερήσουµε την εκτέλεση του αλγόριθµου. Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 32 / 51

lab3appm.nc module lab3appm { p r o v i d e s { i n t e r f a c e S t d C o n t r o l ; uses { i n t e r f a c e ConsensusControl ; i n t e r f a c e Leds ; i n t e r f a c e T i m e r ; implementation { u i n t 8 _ t m_values [ 2 0 ] = { 0, 1, 1, 0, 1, 1, 1, 0, 2, 1, 0, 1, 1, 0, 2, 1 ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 33 / 51

lab3appm.nc command r e s u l t _ t S t d C o n t r o l. i n i t ( ) { c a l l Leds. i n i t ( ) ; c a l l ConsensusControl. i n i t ( TOS_LOCAL_ADDRESS, m_values [ TOS_LOCAL_ADDRESS ] ) ; r e t u r n SUCCESS ; command r e s u l t _ t S t d C o n t r o l. s t a r t ( ) { r e t u r n c a l l T i m e r. s t a r t ( TIMER_ONE_SHOT, 3 0 0 0 ) ; command r e s u l t _ t S t d C o n t r o l. stop ( ) { r e t u r n c a l l T i m e r. stop ( ) ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 34 / 51

lab3appm.nc event r e s u l t _ t T i m e r. f i r e d ( ) { post s t a r t C o n s e n s u s ( ) ; r e t u r n SUCCESS ; t a s k void s t a r t C o n s e n s u s ( ) { / / S t a r t the consensus process c a l l ConsensusControl. s t a r t ( ) ; c a l l Leds. redon ( ) ; dbg ( DBG_TEMP, " D i s t r i b u t e d consensus process s t a r t e d. \ n " ) ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 35 / 51

lab3appm.nc event r e s u l t _ t ConsensusControl. done ( u i n t 8 _ t value ) { dbg ( DBG_TEMP, " Node %d decided value %d. \ n ", TOS_LOCAL_ADDRESS, value ) ; c a l l Leds. redoff ( ) ; c a l l Leds. greenon ( ) ; r e t u r n SUCCESS ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 36 / 51

Θέµατα Μελέτης Θέλουµε να εξετάσουµε: Πλήρες δίκτυο 5 διεργασιών. (δεν δηλώνουµε αρχείο τοπολογίας) Πλήρες δίκτυο 10 διεργασιών. (δεν δηλώνουµε αρχείο τοπολογίας) Γενικό δίκτυο 8 διεργασιών. (προσοχή το αρχείο τοπολογίας έχει αλλάξει) Γενικό δίκτυο 16 διεργασιών. (προσοχή το αρχείο τοπολογίας έχει αλλάξει) Παρατηρείστε τα µηνύµατα εξόδου. Πόσοι γύροι απαιτούνται για να προκύψει συµφωνία στις αποφάσεις όλων των διεργασιών; Πόσα µηνύµατα ανταλλάσσονται; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 37 / 51

Αλγόριθµος OptSimpleConsensus Θέλουµε να υλοποιήσουµε τον αλγόριθµο OptSimpleConsensus Οι διεργασίες στέλνουν µήνυµα µόνο αν υπάρξει κάποια αλλαγή στον πίνακα που διατηρεί τις τιµές των άλλων διεργασιών. Πόσα µηνύµατα εχουµε ; Πως αλλάζει η συµπεριφορά του συστήµατος στις απώλειες µηνυµάτων ; Απαιτούνται λιγότεροι γύροι ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 38 / 51

Μοντέλο Σφαλµάτων Επικοινωνίας Εξετάζουµε την περίπτωση όπου κατά την εκτέλεση ενός κατανεµηµένου αλγορίθµου παρουσιάζονται σφάλµατα κατά την αποστολή µηνυµάτων Σφάλµα Επικοινωνίας Το δίκτυο επικοινωνίας που συνδέει τις µονάδες ενός κατανεµηµένου συστήµατος µπορεί να αποτύχει κατά την αποστολή ενός µηνύµατος µέσω ενός (ελαττωµατικού) καναλιού. Η παράδοση των µηνυµάτων που έχουν σταλεί δεν είναι εγγυηµένη. Υποθέτουµε ότι ένας αριθµός µηνυµάτων που ϑα αποσταλούν κατά την εκτέλεση ενός κατανεµηµένου αλγορίθµου, δεν ϑα παραδοθούν µε επιτυχία. Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 39 / 51

TINYOS-Generic8.nss 0 : 5 : 0 0 : 6 : 0 0 : 7 : 0 1 : 2 : 0 1 : 3 : 0 2 : 1 : 0 2 : 3 : 0 2 : 4 : 0 2 : 5 : 0 3 : 1 : 0 3 : 2 : 0 Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 40 / 51

TINYOS-Generic8-F.nss 0 : 5 : 0 0 : 6 : 0. 5 0 : 7 : 0 1 : 2 : 0 1 : 3 : 0. 5 2 : 1 : 0 2 : 3 : 0 2 : 4 : 0 2 : 5 : 0. 5 3 : 1 : 0 3 : 2 : 0. 7 Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 41 / 51

Θέµατα Μελέτης Θέλουµε να εξετάσουµε τη συµπεριφορά των αλγόριθµων SimpleConsensus και OptSimpleConsensus για τις ακόλουθες περιπτώσεις: Πλήρες δίκτυο 5 διεργασιών. (δεν δηλώνουµε αρχείο τοπολογίας) Πλήρες δίκτυο 10 διεργασιών. (δεν δηλώνουµε αρχείο τοπολογίας) Γενικό δίκτυο 8 διεργασιών. (προσοχή το αρχείο τοπολογίας έχει αλλάξει) Γενικό δίκτυο 16 διεργασιών. (προσοχή το αρχείο τοπολογίας έχει αλλάξει) Παρατηρείστε τα µηνύµατα εξόδου. Πως επιρεάζεται η συµπερηφορά των αλγορίθµων; Πόσοι γύροι απαιτούνται για να προκύψει συµφωνία στις αποφάσεις όλων των διεργασιών; Πόσα µηνύµατα ανταλλάσσονται; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 42 / 51

Μοντέλο Σφαλµάτων Τερµατισµού Εξετάζουµε την περίπτωση όπου κατά την εκτέλεση ενός κατανεµηµένου αλγορίθµου σφάλµατα που παρουσιάζονται στις υπολογιστικές µονάδες (στους επεξεργαστές) εµφανίζονται το πολύ σ σφάλµατα Σφάλµα Τερµατισµού Κάποια (ελαττωµατική) µονάδα του κατανεµηµένου συστήµατος µπορεί να αποτύχει κατά την εκτέλεση µια διεργασίας. Ενα σφάλµα τερµατισµού µπορεί να παρουσιαστεί σε οποιοδήποτε σηµείο της εκτέλεσης µιας διεργασίας. Η διεργασία µπορεί να τερµατίσει ξαφνικά κατά την παραγωγή µηνυµάτων, οπότε να σταλεί µόνο ένα µέρος των εξερχόµενων µηνυµάτων. Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 43 / 51

Είσοδος/ Εξοδος στα ανώτερα επίπεδα Για να µπορέσουµε να προσοµοιώσουµε τα σφάλµατα τερµατισµού, επεκτείνουµε το interface ConsensusControl ως εξής: command result_t stop() σταµατάει τη διαδικασία συναίνεσης. Επιστρέφει πάντα SUCCESS. ConsensusControl.nc async command r e s u l t _ t stop ( ) ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 44 / 51

οκιµαστική Εφαρµογή Θέλουµε µια απλή εφαρµογή για να ελέγξουµε τον αλγόριθµο υπο την παρουσία σφαλµάτων τερµατισµού. Εισάγουµε ένα δεύτερο Timer για να µπορούµε να δηµιουργήσουµε σφάλµατα σε συγκεκριµένες χρονικές στιγµές. module lab3appfailuresm { uses { i n t e r f a c e ConsensusControl ; i n t e r f a c e Leds ; i n t e r f a c e T i m e r ; i n t e r f a c e T i m e r as T i m e r F a i l ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 45 / 51

lab3appfailuresm.nc command r e s u l t _ t S t d C o n t r o l. s t a r t ( ) { i f ( TOS_LOCAL_ADDRESS == 1) c a l l T i m e r F a i l. s t a r t ( TIMER_ONE_SHOT, 4 0 0 0 ) ; i f ( TOS_LOCAL_ADDRESS == 4) c a l l T i m e r F a i l. s t a r t ( TIMER_ONE_SHOT, 3 5 0 0 ) ; i f ( TOS_LOCAL_ADDRESS == 6) c a l l T i m e r F a i l. s t a r t ( TIMER_ONE_SHOT, 3 0 0 0 ) ; i f ( TOS_LOCAL_ADDRESS == 9) c a l l T i m e r F a i l. s t a r t ( TIMER_ONE_SHOT, 3 5 0 0 ) ; i f ( TOS_LOCAL_ADDRESS == 13) c a l l T i m e r F a i l. s t a r t ( TIMER_ONE_SHOT, 5 0 0 0 ) ; r e t u r n c a l l T i m e r. s t a r t ( TIMER_ONE_SHOT, 3 0 0 0 ) ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 46 / 51

lab3appfailuresm.nc event r e s u l t _ t T i m e r F a i l. f i r e d ( ) { dbg ( DBG_TEMP, " Node %d crashed!!! \ n ", TOS_LOCAL_ADDRESS ) ; c a l l Leds. yellowon ( ) ; c a l l ConsensusControl. stop ( ) ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 47 / 51

Θέµατα Μελέτης Θέλουµε να εξετάσουµε τη συµπεριφορά των αλγόριθµων SimpleConsensus και OptSimpleConsensus για τις ακόλουθες περιπτώσεις: Πλήρες δίκτυο 5 διεργασιών. (δεν δηλώνουµε αρχείο τοπολογίας) Πλήρες δίκτυο 10 διεργασιών. (δεν δηλώνουµε αρχείο τοπολογίας) Γενικό δίκτυο 8 διεργασιών. (προσοχή το αρχείο τοπολογίας έχει αλλάξει) Γενικό δίκτυο 16 διεργασιών. (προσοχή το αρχείο τοπολογίας έχει αλλάξει) Παρατηρείστε τα µηνύµατα εξόδου. Πως επιρεάζεται η συµπερηφορά των αλγορίθµων; Πόσοι γύροι απαιτούνται για να προκύψει συµφωνία στις αποφάσεις όλων των διεργασιών; Πόσα µηνύµατα ανταλλάσσονται; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 48 / 51

Βυζαντινά Σφάλµατα Το δίκτυο περιέχει ελαττωµατικές διεργασίες που δεν σταµατούν αλλά συνεχίζουν να συµµετέχουν στην εκτέλεση του αλγορίθµου. Η συµπεριφορά των διεργασιών µπορεί να είναι τελείως ανεξέλεγκτη. Η εσωτερική κατάσταση µια ελαττωµατικής διεργασίας µπορεί να αλλάξει κατά την διάρκεια ενός γύρου χωρίς να υπάρχει κάποιο µήνυµα. Μια ελαττωµατική διεργασία µπορεί να στείλει µηνύµατα µε οποιοδήποτε περιεχόµενο, ανεξάρτητα από τις οδηγίες του κατανεµηµένου αλγορίθµου που ϑα έπρεπε να τρέχει. Ονοµάζουµε τέτοιου είδους σφάλµατα ως Βυζαντινά σφάλµατα. Μπορούµε να µοντελοποιήσουµε εχθρική συµπεριφορά (π.χ. ϑέµατα ασφάλειας). Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 49 / 51

οκιµαστική Εφαρµογή Θέλουµε µια απλή εφαρµογή για να ελέγξουµε τον αλγόριθµο υπο την παρουσία ϐυζαντινών σφαλµάτων. Βασιζόµαστε στις προηγούµενες τροποποιήσεις. Αντί να σταµατήσουµε την διεργασία, την αρχικοποιούµε ξανά και την επανεκκινούµε. event r e s u l t _ t T i m e r F a i l. f i r e d ( ) { c a l l ConsensusControl. stop ( ) ; i f ( TOS_LOCAL_ADDRESS == 1) c a l l ConsensusControl. i n i t ( 3, 2 ) ; c a l l ConsensusControl. s t a r t ( ) ; r e t u r n SUCCESS ; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 50 / 51

Θέµατα Μελέτης Θέλουµε να εξετάσουµε τη συµπεριφορά των αλγόριθµων SimpleConsensus και OptSimpleConsensus για τις ακόλουθες περιπτώσεις: Πλήρες δίκτυο 5 διεργασιών. (δεν δηλώνουµε αρχείο τοπολογίας) Πλήρες δίκτυο 10 διεργασιών. (δεν δηλώνουµε αρχείο τοπολογίας) Γενικό δίκτυο 8 διεργασιών. (προσοχή το αρχείο τοπολογίας έχει αλλάξει) Γενικό δίκτυο 16 διεργασιών. (προσοχή το αρχείο τοπολογίας έχει αλλάξει) Παρατηρείστε τα µηνύµατα εξόδου. Πως επιρεάζεται η συµπεριφορά των αλγορίθµων; Πόσοι γύροι απαιτούνται για να προκύψει συµφωνία στις αποφάσεις όλων των διεργασιών; Πόσα µηνύµατα ανταλλάσσονται; Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη 12 Ιανουαρίου 2009 51 / 51