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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Φυσικά και λογικά ρολόγια. Κατανεμημένα Συστήματα 1

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

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

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


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

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

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

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

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

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

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

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

Ανοχήβλαβών. Κατανεµηµένα Συστήµατα 19-1

Αιτιώδεις Σχέσεις και Χρονισµός. Παναγιώτα Φατούρου Αρχές Κατανεµηµένου Υπολογισµού

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

Αμοιβαίος αποκλεισμός με ασύγχρονη επικοινωνία (ανταλλαγή μηνυμάτων) Ταυτόχρονος Προγραμματισμός 1

Διάλεξη 11: Αιτιότητα Διάταξη Γεγονότων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

Εντοπισμός τερματισμού. Κατανεμημένα Συστήματα 1

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

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

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

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

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

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

Consensus and related problems

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

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

Εντοπισμός αδιεξόδου. Κατανεμημένα Συστήματα 1

Αποτίµησηκαθολικού κατηγορήµατος

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

Συντονισμός και συμφωνία

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

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

3. Προσομοίωση ενός Συστήματος Αναμονής.

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

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

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

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

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

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

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

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

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

Ασκήσεις μελέτης της 8 ης διάλεξης

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Κεφάλαιο 6: Προσομοίωση ενός συστήματος αναμονής

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

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

Το μάθημα. Λειτουργικά Συστήματα Πραγματικού Χρόνου Βασικές Έννοιες 6. Ενσωματωμένα Συστήματα (embedded systems) Παραδείγματα

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

Transcript:

Σύνοψη Μαθήµατος Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Ιωάννης Χατζηγιαννάκης ευτέρα, 22 Νοεµβρίου, 2010 Αίθουσα Β Σύγχρονα Κατανεµηµένα Συστήµατα Βυζαντινά Σφάλµατα Ασύγχρονα Κατανεµηµένα Συστήµατα Μοντελοποίηση Αυτόµατα Εισόδου / Εξόδου Βασικοί Κατανεµηµένοι Αλγόριθµοι Εκλογή Αρχηγού Κατασκευή Επικαλυπτικών έντρων Αναζήτηση κατά Εύρος Βυζαντινά Σφάλµατα Βυζαντινοί Στρατηγοί Το δίκτυο περιέχει ελαττωµατικές διεργασίες που δεν σταµατούν αλλά συνεχίζουν να συµµετέχουν στην εκτέλεση του αλγορίθµου. Η συµπεριφορά των διεργασιών µπορεί να είναι τελείως ανεξέλεγκτη. Η εσωτερική κατάσταση µια ελαττωµατικής διεργασίες µπορεί να αλλάξει κατά την διάρκεια ενός γύρου χωρίς να υπάρχει κάποιο µήνυµα. Μια ελαττωµατική διεργασία µπορεί να στείλει µηνύµατα µε οποιοδήποτε περιεχόµενο, ανεξάρτητα από τις οδηγίες του κατανεµηµένου αλγορίθµου που ϑα έπρεπε να τρέχει. Ονοµάζουµε τέτοιου είδους σφάλµατα ως Βυζαντινά σφάλµατα. Μπορούµε να µοντελοποιήσουµε εχθρική συµπεριφορά (π.χ. ϑέµατα ασφάλειας). Συντονισµένη Επίθεση Βυζαντινών Στρατηγών Τέσσερις στρατηγοί διοικούν από ένα στρατό και Θέλουν να εισβάλουν συντονισµένα σε µια αντίπαλη πόλη. Ανάµεσα στους στρατηγούς υπάρχει και ένας προδότης. Ολοι οι πιστοί στρατηγοί πρέπει να συµφωνήσουν στο ίδιο πλάνο επίθεσης (ή υποχώρησης) ανεξάρτητα από τις κινήσεις του προδότη. Οι επικοινωνία µεταξύ των αρχηγών γίνεται µε ανταλλαγή µηνυµάτων. Ο προδότης έχει ελευθερία κινήσεων. Ολες οι λύσεις στο πρόβληµα απαιτούν το πλήθος των διεργασιών να είναι τουλάχιστον τριπλάσιο των σφαλµάτων δηλ. n > σ. Είναι διαφορετικό από τα σφάλµατα τερµατισµού όπου το n και σ δεν είχαν κάποια σχέση. Ισως να ακούγεται υπερβολικό, καθότι γνωρίζουµε την τεχνική της triple-modular redundancy -- δηλ. n > 2σ + 1.

Μοντελοποίηση Ασύγχρονων Συστηµάτων Αυτόµατα Εισόδου/Εξόδου Μελετάµε κατανεµηµένα συστήµατα, όπου 1. τα επιµέρους συστήµατα εκτελούν τις εργασίες τους µε οποιαδήποτε, ακαθόριστη, ταχύτητα σε σχέση µε τα υπόλοιπα υποσυστήµατα 2. τα κανάλια επικοινωνίας παραδίδουν τα µηνύµατα µε οποιαδήποτε, ακαθόριστη, ταχύτητα σε σχέση µε τα υπόλοιπα κανάλια Μοντελοποιούµε αυτή την απροσδιόριστη χρονικά συµπεριφορά χρησιµοποιώντας αυτόµατα εισόδου/εξόδου Κάθε διεργασία µοντελοποιείτε απο ένα αυτόµατο εισόδου/εξόδου Κάθε κανάλι επικοινωνίας µοντελοποιείτε απο ένα αυτόµατο εισόδου/εξόδου Ενα αυτόµατο εισόδου/εξόδου A αποτελείται από: Τρία σύνολα απο ενέργειες εισόδου in(a) -- ενέργειες εξόδου out(a), και εσωτερικές ενέργειες int(a) Ενα σύνολο καταστάσεων states(a) Ορισµένες τις ονοµάζουµε αρχικές καταστάσεις start(a) Ορισµένες τις ονοµάζουµε καταστάσεις τερµατισµού halt(a) Μια συνάρτηση αλλαγής κατάστασης trans(a) states(a) (in(a) out(a) int(a)) states(a) Για κάθε κατάσταση κ και κάθε ενέργεια ɛ Υπάρχει µια µετάβαση (κ, ɛ, κ ) trans(a) Ιδιότητες Συστήµατος Μια εκτέλεση του αυτόµατου εισόδου/εξόδου A περιγράφεται: κ0, ɛ1, κ1, ɛ2,... ɛr, κr,... όπου για κάθε r 0 ισχύει ότι (κr, ɛr+1, κr+1) trans(a) Μέτρηση πολυπλοκότητας Πολυπλοκότητα Επικοινωνίας συνολικός αριθµός µηνυµάτων που στάλθηκαν ή παραλήφθηκαν Χρονική πολυπλοκότητα η χρονική απροσδιοριστία δεν µας επιτρέπει να µετρήσουµε µε ευκολία 1. Θέτουµε ένα άνω ϕράγµα l στον χρόνο εκτέλεσης κάθε ενέργειας ɛ σε κάποια κατάσταση κ 2. Θέτουµε ένα άνω ϕράγµα d στον χρόνο παράδοσης του παλαιότερου µηνύµατος που ϐρίσκεται σε κάποιο κανάλι επικοινωνίας Ενα Κανάλι ως Αυτόµατο Εισόδου/Εξόδου (1) Συνδέει τις διεργασίες u, v Παραδίδει τα µηνύµατα µε τη σειρά που τα παρέλαβε (FIFO) Εστω M το αλφάβητο µηνυµάτων Ενέργειες Εισόδου in(cu,v) 1. send(m)u,v, m M Ενέργειες Εξόδου out(cu,v) 1. receive(m)u,v, m M Το κανάλι επικοινωνίας Cu,v send(m)u,v Cu,v receive(m)u,v

Ενα Κανάλι ως Αυτόµατο Εισόδου/Εξόδου (2) Ενα Κανάλι ως Αυτόµατο Εισόδου/Εξόδου () Καταστάσεις: 1. queue -- µια FIFO ουρά απο στοιχεία του M, αρχικά κενή Μεταβάσεις: 1. send(m)u,v 2. receive(m)u,v αποτέλεσµα -- τοποθέτησε το m στην ουρά queue προϋπόθεση -- m πρώτο στην queue αποτέλεσµα -- αφαίρεση του πρώτου στοιχείου της queue Πιθανές εκτελέσεις (οι ουρές δίνονται µέσα σε [,]) [], send(1)u,v, [1], receive(1)u,v, [], send(2)u,v, [2], receive(2)u,v, [] [], send(1)u,v, [1], send(2)u,v, [12], send(2)u,v, [122], receive(1)u,v, [22], send(1)u,v, [221], receive(2)u,v, [21], receive(2)u,v, [1],... ιαφορετικοί τύποι καναλιών: Αξιόπιστα, FIFO -- παραδίδουν όλα τα µηνύµατα µε τη σειρά που τα παρέλαβαν (αυτόµατο παραδείγµατος) Αναξιόπιστα, FIFO -- Μεταβάσεις: 1. send(m)u,v -- αποτέλεσµα : τοποθέτησε ένα πεπερασµένο αριθµό αντιγράφων του m στην ουρά queue Αναξιόπιστα -- Καταστάσεις: 1. in-transit-- ένα διάνυσµα απο στοιχεία του M, αρχικά άδειο Μεταβάσεις: 1. send(m)u,v -- αποτέλεσµα : τοποθέτησε ένα πεπερασµένο αριθµό αντιγράφων του m στο in-transit 2. receive(m)u,v -- προϋπόθεση : m in-transit -- αποτέλεσµα: αφαίρεση ενός αντιγράφου του m από το in-transit Μια ιεργασία ως Αυτόµατο Εισόδου/Εξόδου (1) Μια ιεργασία ως Αυτόµατο Εισόδου/Εξόδου (2) Εκτελεί ένα κατανεµηµένο αλγόριθµο συναίνεσης Ενέργειες Εισόδου in(pu) 1. init(i)u, i S 2. receive(i)v,u, i S, 1 v n, v u Ενέργειες Εξόδου out(pu) 1. decide(i)u, i S 2. send(m)u,v, i S, 1 v n, v u Η διεργασία P u init(v)u Pu decide(v)u Μεταβάσεις: 1. init(i)u, i S αποτέλεσµα -- val(u) = i 2. send(i)u,v, i S προϋπόθεση -- val(u) == i αποτέλεσµα -- κανένα. receive(i)v,u, i S αποτέλεσµα -- val(v) = i Καταστάσεις:. decide(i)u, i S 1. val -- ένα διάνυσµα, δεικτοδοτείται από {1,..., n} στοιχεία του S null, αρχικά null send(m)u,v receive(m)v,u προϋπόθεση -- για κάθε v, 1 v n : val(v) null i = ( f val(1),..., val(n) ) αποτέλεσµα -- κανένα

Σύνοψη 6 ης ιάλεξης ιάταξη Γεγονότων (1) Προηγούµενο Μάθηµα Προηγούµενο Μάθηµα Βυζαντινά Σφάλµατα Ασύγχρονα Κατανεµηµένα Συστήµατα Ασύγχρονα Κατανεµηµένα Συστήµατα ιάταξη Γεγονότων Λογικός Χρόνος Αµοιβαίος Αποκλεισµός Σύνοψη Μαθήµατος Σύνοψη Μαθήµατος η Ασκηση Επόµενο Μάθηµα Κάθε διεργασία Pu χαρακτηρίζεται απο την κατάσταση της stateu Ορίζουµε ως συµβάν σ u µια ενέργεια ɛ που επιφέρει µια αλλαγή στην κατάσταση κάποιας διεργασίας Pu Υποθέτουµε ότι οι διεργασίες εξελίσσονται σειριακά Υπάρχει µια αυστηρή διάταξη των συµβάντων σ1 u, σu 2,... κάθε διεργασίας Pu όπου σk u, σk+1 u σηµαίνει ότι το σu k συνέβη πριν το σk+1 u Ορίζουµε Hu = {σ1 u, σu 2,...} την ιστορία της Pu ιάταξη Γεγονότων (2) Εστω α µία εκτέλεση του συστήµατος S Η εκτέλεση α αποτελείτε από µια ακολουθία συµβάντων σ1, σ2,..., σk,... Η ϐασική ιδέα είναι να διατάξουµε τα συµβάντα της α κατά αύξουσα χρονική σειρά, δίνοντας σε κάθε συµβάν σ µια χρονοσφραγίδα TS(σ) T, όπου T είναι ένα πλήρως διατεταγµένο σύνολο Το σύνολο T πρέπει να ικανοποιεί µια συγκεκριµένη συνθήκη: υπάρχει µια ακολουθία t1, t2,... απο αύξοντα στοιχεία του T τέτοια ώστε κάθε t T είναι ϕραγµένο εκ των άνω απο κάποιο ti Οι χρονοσφραγίδες δεν πρέπει να έχουν κάποια συγκεκριµένη σχέση µε τον πραγµατικό χρόνο Η σχέση συνέβη-πριν (1) Θέλουµε να διατάξουµε τα συµβάντα που συµβαίνουν σε διαφορετικές διεργασίες Η σχέση συνέβη-πριν µοντελοποιεί την λογική σχέση εξάρτησης των συµβάντων Αν σi σj τότε το συµβάν σi συνέβη πριν το σj Η διάταξη ϐασίζεται στα παρακάτω: 1. αν δύο συµβάντα συνέβησαν στην ίδια διεργασία Pu τότε συνέβησαν µε τη σειρά που τα παρατήρησε η Pu -- όπως προκύπτει απο την ιστορία Hu 2. αν η Pu στείλει ένα µήνυµα m στην Pv όπου σi u = send(m) και σj v = receive(m) τότε η αποστολή του µηνύµατος (συµβάν στον αποστολέα) προηγείται λογικά της παραλαβής του (συµβάν στον παραλήπτη) Η διάταξη ικανοποιεί την Μεταβατική ιδιότητα αν σi σj και (στην συνέχεια) σj σk, τότε σi σk

Η σχέση συνέβη-πριν (2) Λογικά Ανεξάρτητα Συµβάντα (1) Ισχύει ότι e1.1 e. εφόσον e1.1 e1.2 e2.2 e2. e. e.1 e1. εφόσον e.1 e.2 e1. Παράδειγµα εκτέλεσης Η σχέση ορίζει µόνο µια µερική διάταξη του συνόλου των συµβάντων της εκτέλεσης του συστήµατος. Μπορεί να υπάρχουν συµβάντα που δεν συνδέονται µεταξύ τους µέσω της σχέσης ονοµάζονται λογικά ανεξάρτητα ή λογικά ταυτόχρονα : σ u i σ v j ( ) ( ) σ u i σ v j σ v j σ u i Εξ ορισµού, τα συµβάντα που λαµβάνουν χώρα στην ίδια διεργασία δεν είναι λογικά ανεξάρτητα µεταξύ τους Αν δύο γεγονότα είναι λογικά ανεξάρτητα δεν συνεπάγεται ότι πραγµατοποιούνται ταυτόχρονα Η λογική ανεξαρτησία δεν συνεπάγεται και απουσία χρονολογικής σειράς (σύµφωνα µε ένα αντικειµενικό εξωτερικό παρατηρητή του συστήµατος) Λογικά Ανεξάρτητα Συµβάντα (2) Συζήτηση Ισχύει ότι e1.1 e.2 e2.1 e1. Σύµφωνα µε το παράδειγµα εκτέλεσης, το συµβάν e1.1 πραγµατοποιήθηκε πριν το e.2 και το e2.1 πριν το e1. Παράδειγµα εκτέλεσης εν µπορούν να σχετιστούν όλα τα συµβάντα σε µια εκτέλεση ενός κατανεµηµένου συστήµατος µε την σχέση Ας υποθέσουµε ότι το κατανεµηµένο σύστηµα διαθέτει ένα καθολικό ρολόι πραγµατικού χρόνου RC Τότε RC(σ) είναι η τιµή του καθολικού ϕυσικού ϱολογιού όταν πραγµατοποιήθηκε το συµβάν σ Εποµένως αν το σi συνέβη πριν το σj, δηλ. τότε ισχύει ότι σi σj RC(σi) < RC(σj)

Λογικός Χρόνος Λογικά Ρολόγια Lamport ίνουµε σε κάθε συµβάν σ µια χρονοσφραγίδα TS(σ) T, όπου T είναι ένα πλήρως διατεταγµένο σύνολο Η χρονοσφραγίδα του συµβάντος σi όπου σi σj πρέπει να έχει µικρότερη απο την χρονοσφραγίδα του σj δηλ. TS(σi) < TS(σj) Μπορούµε να σειριοποιήσουµε τα συµβάντα χωρίς να παραβιάζεται (όχι όµως και να τηρείται απαραίτητα επακριβώς) η λογική σχέση εξάρτησης τους Μπορούµε να προσφέρουµε ένα περιβάλλον συγχρονισµένης εκτέλεσης αποφεύγοντας τις δυσκολίες του συγχρονισµού των ϕυσικών ϱολογιών χρονική πολυπλοκότητα πολυπλοκότητα επικοινωνίας περιοδική εκτέλεση Ο Lamport προτείνει ένα απλό µηχανισµό για τον ορισµό των χρονοσφραγίδων που ικανοποιούν την σχέση συνέβη-πριν Ονόµασε τον µηχανισµό λογικό ρολόι (logical clock) Ενα λογικό ϱολόι είναι ένας µονότονα αυξανόµενος µετρητής, του οποίου η τιµή δεν χρειάζεται να έχει κάποια ιδιαίτερη σχέση µε κάποιο ϕυσικό ϱολόι Κάθε διεργασία Pu διατηρεί το δικό της λογικό ϱολόι LCu Χρησιµοποιούµε την τιµή του λογικού ϱολογιού ως χρονοσφραγίδα για κάθε συµβάν Ο Αλγόριθµος του Lamport (1) Ο Αλγόριθµος του Lamport (2) Αλγόριθµος LamportTime Οι διεργασίες διατηρούν µια µεταβλητή LC η οποία αρχικά είναι 0. Για κάθε εσωτερικό συµβάν ή ένα συµβάν send(m) ϑέτουν LC + +. Μαζί µε κάθε µήνυµα m που στέλνουν οι διεργασίες, επισυνάπτουν την τιµή της µεταβλητής LC. Μόλις λάβουν ένα µήνυµα m µε χρονοσφραγίδα TS(m) ϑέτουν LC = max{lc, TS(m)} + 1. Αν για δύο συµβάντα σi και σj ισχύει σi σj ο αλγόριθµος LamportTime εξασφαλίζει ότι TS(σi) < TS(σj) Αν TS(σi) < TS(σj) δεν ισχύει αναγκαστικά ότι σi σj Είναι πιθανό δύο συµβάντα σi και σj που πραγµατοποιούνται σε δύο διαφορετικές διεργασίες να µην συνδέονται µε την σχέση και να έχουν τις ίδιες χρονοσφραγίδες Οµως δεν επιτρέπουµε σε ένα συµβάν να συµβεί ακριβώς την ίδια χρονική στιγµή µε κάποιο άλλο Για να ικανοποιούν τα λογικά ϱολόγια του Lamport αυτή την συνθήκη, µια απλή λύση είναι η χρήση των ταυτοτήτων των διεργασιών για τον υπολογισµό των χρονοσφραγίδων εδώ υποθέτουµε ότι οι διεργασίες διαθέτουν µοναδικές ταυτότητες Εποµένως οι χρονοσφραγίδες των γεγονότων σ u i και σ v i ϑα είναι i.u και i.v -- π.χ. 11.1 και 11.06

Αρχική Εκτέλεση Υλοποίηση Αλγόριθµου του Lamport εδοµένου ενός αυτόµατου P µπορούµε να υλοποιήσουµε τον αλγόριθµο του Lamport παρόµοια µε τον τρόπο υλοποίησης των συγχρονιστών Μπορούµε επίσης να επεκτείνουµε το P υλοποιώντας τον αλγόριθµο του Lamport ως LamportTime(P) 1 η Προσέγγιση 2 η Προσέγγιση Μετατροπή Εκτέλεσης P1 P2 C2,1 L (P) L1 1 L (P) L2 2 C1,2 C2,1 L1 L2 C1,2 Αυτόµατο LamportTime u (1) Αυτόµατο LamportTime u (2) Μεταβάσεις: Ενέργειες: Ενέργειες Εισόδου in(lamporttime u ) 1. send (m) u -- όπου m ένα µήνυµα 2. advanceclocku Ενέργειες Εξόδου out(lamporttime u ) Καταστάσεις: 1. receive (m) u -- όπου m ένα µήνυµα clocku -- ένα λογικό ϱολόι, αρχικά 0 send (m) u αποτέλεσµα: clock++ send(m, clock) advanceclocku αποτέλεσµα: clock++ receive (m) u προϋπόθεση: receive(m, c) αποτέλεσµα: clock = max(clock, c) + 1

Αυτόµατο LamportTime(A) u (1) Αυτόµατο LamportTime(A) u (2) Ενέργειες: Ιδιες µε το αυτόµατο A Αντικαθιστούµε την send (m) u της A µε send (m, c) u Αντικαθιστούµε την receive (m) u της A µε receive (m, c) u Καταστάσεις: Ιδιες µε το αυτόµατο A clocku -- ένα λογικό ϱολόι, αρχικά 0 Μεταβάσεις: Ενέργειες εισόδου/εξόδου/εσωτερικές εκτός από send, receive προϋπόθεση: Ιδιες µε το αυτόµατο A αποτέλεσµα: clock++ Μεταβάσεις: (συνέχεια) send (m, c) u προϋπόθεση: Ιδιες µε send(m)u του αυτόµατου A c = clock + 1 αποτέλεσµα: Ιδιες µε send(m)u του αυτόµατου A clock = c receive (m, c) u αποτέλεσµα: Ιδιες µε receive(m)u του αυτόµατου A clock = max(clock, c) + 1 Αµοιβαίος Αποκλεισµός Απαραίτητες ιδιότητες Οι διεργασίες διαµοιράζονται ορισµένους κοινούς πόρους Κάποιοι πόροι απαιτούν αποκλειστική πρόσβαση από µία διεργασία µόνο Το µέρος της διεργασίας που χρειάζεται να χειριστεί τον πόρο αποκλειστικά ονοµάζεται κρίσιµο τµήµα (ΚΤ) Απαιτείται συντονισµένη πρόσβαση Κεντρικοποιηµένα Συστήµατα Χρήση semaphores, συντονιστών... Το πρόβληµα του Αµοιβαίου Αποκλεισµού ορίστηκε για πρώτη ϕορά από τον Edsger Dijkstra το 196 Λειτουργικά Συστήµατα Ι, Μάθηµα oυ Εξαµήνου, Τοµέας Λογικού και Υπολογιστών Ασφάλεια (safety) -- µια µόνο από τις διεργασίες µπορεί να αποκτήσει πρόσβαση στον κοινό πόρο σε ένα ορισµένο χρονικό διάστηµα Βιωσιµότητα (liveness) -- αν µια διεργασία επιθυµεί να εισέλθει στο κρίσιµο τµήµα τελικά ϑα το καταφέρει αν ο κοινός πόρος δεν χρησιµοποιείται, τότε όποια διεργασία Ϲητήσει πρόσβαση ϑα πρέπει να την αποκτήσει σε πεπερασµένο χρονικό διάστηµα ιάταξη (ordering) -- η άδεια εισόδου στο κρίσιµο τµήµα πρέπει να παραχωρηθεί σύµφωνα µε τη σχέση συνέβη-πριν: οι αιτήσεις των διεργασιών εξυπηρετούνται µε τη σειρά που έχουν εκδοθεί

Ελάχιστες Υποθέσεις Κριτήρια Απόδοσης Οι διεργασίες έχουν µοναδικές ταυτότητες Κάθε διεργασία έχει µέρη του κώδικα της µε κρίσιµα τµήµατα Για ευκολία οι διεργασίες ανταγωνίζονται για ένα µόνο πόρο εν υπάρχει κάποιο καθολικό ϱολόι Οι διεργασίες επικοινωνούν µε την ανταλλαγή µηνυµάτων Υποθέτουµε ότι τα κανάλια είναι αξιόπιστα, FIFO Το δίκτυο είναι πλήρες 1. Ορθότητα (Correctness) οι συνθήκες ασφάλειας, ϐιωσιµότητας και διάταξης ισχύουν 2. Πολυπλοκότητα Επικοινωνίας (Communication Complexity) επεξεργασία των αιτήσεων ελαχιστοποιώντας τον αριθµό µηνυµάτων. Απόκριση (Latency) ελαχιστοποίηση της καθυστέρησης εισόδου στο κρίσιµο τµήµα Ο Αλγόριθµος Coordinator Χαρακτηριστικά του Αλγόριθµου Coordinator Αλγόριθµος Coordinator Υπάρχει µια ϕάση αρχικοποίησης του συστήµατος όπου όλες οι διεργασίες εκτελούν έναν αλγόριθµο εκλογής αρχηγού την διεργασία συντονιστή Pc. Κάθε διεργασία που επιθυµεί να µπει σε ΚΤ στέλνει µια αίτηση στον συντονιστή. Ο συντονιστής διατηρεί µια ουρά για τις εισερχόµενες αιτήσεις. Εφόσον ο κοινός πόρος είναι ελεύθερος και η ουρά δεν είναι άδεια, ο συντονιστής ενηµερώνει την διεργασία που ϐρίσκεται στην αρχή της ουράς να µπει στο ΚΤ. Οταν η διεργασία ϐγει απο το ΚΤ στέλνει ένα µήνυµα εξόδου στον συντονιστή. Λύνει το πρόβληµα: ικανοποιεί και τις συνθήκες Πολύ εύκολη υλοποίηση είδη µηνυµάτων: request, reply, release Μετατροπή της λύσης για κεντρικοποιηµένα συστήµατα Για την είσοδο µιας διεργασίας στο ΚΤ χρειάζονται 2 µηνύµατα η απόκριση του αλγόριθµου αντιστοιχεί στον χρόνο αποστολής δύο µηνυµάτων ή στο roundtrip delay. Χαµηλή Κλιµάκωση ο συντονιστής είναι σηµείο συµφόρησης: µια διεργασία πρέπει να εξυπηρετήσει όλο το σύστηµα Χαµηλή Ανεκτικότητα σε Σφάλµατα ο συντονιστής είναι µοναδικό σηµείο αποτυχίας Σε περίπτωση ϐλάβης οι διεργασίες πρέπει να εκλέξουν νέο συντονιστή Ο νέος συντονιστής πρέπει να αποκαταστήσει την ουρά των αιτήσεων διασφαλίζοντας την συνθήκη της ιάταξης

Ο Αλγόριθµος του Lamport Χαρακτηριστικά του Αλγόριθµου LamportME Αλγόριθµος LamportME Οι διεργασίες διατηρούν ένα τοπικό λογικό ϱολόι σύµφωνα µε τον αλγόριθµο LamportTime. Οι διεργασίες διατηρούν µια ουρά για τις εισερχόµενες αιτήσεις. Κάθε διεργασία που επιθυµεί να µπει σε ΚΤ στέλνει µια αίτηση (µε χρονοσφραγίδα) σε όλες τις άλλες διεργασίες, και τοποθετεί την αίτηση στην ουρά της. Οταν µια διεργασία παραλάβει µια αίτηση την προσθέτει στην ουρά και απαντάει επιβεβαιώνοντας την παραλαβή. Η διεργασία µε µικρότερη χρονοσφραγίδα εισέρχεται στο ΚΤ. Οταν η διεργασία ϐγει απο το ΚΤ στέλνει ένα µήνυµα εξόδου σε όλες τις διεργασίες και αφαιρεί την αίτηση απο την ουρά της αντίστοιχα διαγράφουν και οι άλλες διεργασίες την αίτηση απο την ουρά που διατηρούν. Πρώτη κατανεµηµένη προσέγγιση 1978 Λύνει το πρόβληµα: ικανοποιεί και τις συνθήκες Χρησιµοποιεί είδη µηνυµάτων: request, reply, release Για κάθε αίτηση στέλνονται (n 1) µηνύµατα n 1 µηνύµατα για κάθε αίτηση n 1 µηνύµατα επιβεβαίωσης n 1 µηνύµατα εξόδου Η απόκριση του αλγόριθµου για µια µόνο αίτηση είναι 2δ + O(l) Η καθυστέρηση από τη στιγµή που µια διεργασία χρειάζεται να χρησιµοποιήσει το ΚΤ είναι ανάλογη µε τον χρόνο ανταλλαγής 2 (n 1) µηνυµάτων Ο Αλγόριθµος των Ricard και Agrawala Χαρακτηριστικά του Αλγόριθµου RicardAgrawalaME Αλγόριθµος RicardAgrawalaME Οι διεργασίες διατηρούν ένα τοπικό λογικό ϱολόι σύµφωνα µε τον αλγόριθµο LamportTime. Οι διεργασίες διατηρούν µια ουρά προτεραιότητας για τις εισερχόµενες αιτήσεις (σύµφωνα µε τις χρονοσφραγίδες). Κάθε διεργασία που επιθυµεί να µπει σε ΚΤ στέλνει µια αίτηση (µε χρονοσφραγίδα) σε όλες τις άλλες διεργασίες, και τοποθετεί την αίτηση στην ουρά της. Οταν µια διεργασία παραλάβει µια αίτηση την προσθέτει στην ουρά προτεραιότητας και απαντάει επιβεβαιώνοντας την παραλαβή όταν (α) δεν είναι σε ΚΤ, (ϐ) είναι η µοναδική αίτηση στην ουρά, (γ) είναι η πρώτη αίτηση στην ουρά. Αλλιώς καθυστερεί την επιβεβαίωση έως ότου ικανοποιηθεί µια απο τις τρεις συνθήκες. Οταν µια διεργασία λάβει επιβεβαίωση απο όλες τις άλλες διεργασίες, εισέρχεται στο ΚΤ. Λύνει το πρόβληµα: ικανοποιεί και τις συνθήκες Για κάθε αίτηση στέλνονται 2 (n 1) µηνύµατα n 1 µηνύµατα για κάθε αίτηση n 1 µηνύµατα επιβεβαίωσης Η απόκριση του αλγόριθµου για µια µόνο αίτηση είναι 2δ + O(l) Ανεκτικότητα σε Σφάλµατα ; Υπάρχουν n σηµεία αποτυχίας Κλιµάκωση ; Ολες οι διεργασίες πρέπει να εξυπηρετήσουν όλο το σύστηµα Συνδυασµός των µηνυµάτων reply και release

Ο Αλγόριθµος του LeLann Χαρακτηριστικά του Αλγόριθµου LeLannME Αλγόριθµος LeLannME Υπάρχει µια ϕάση αρχικοποίησης του συστήµατος όπου όλες οι διεργασίες κατασκευάζουν ένα εικονικό δακτύλιο και στην συνέχεια εκτελούν έναν αλγόριθµο εκλογής αρχηγού. Η εκλεγµένη διεργασία δηµιουργεί ένα ειδικό µήνυµα κουπόνι το οποίο αποστέλλει στον δεξιόστροφο γείτονα στο εικονικό δακτύλιο. Οταν µια διεργασία παραλάβει το κουπόνι, αν ϑέλει µπορεί να εισέρθει σε ΚΤ, αλλιώς προωθεί το µήνυµα στον δεξιόστροφο γείτονα. Μόλις ϐγει απο το ΚΤ, προωθεί το µήνυµα στον δεξιόστροφο γείτονα. Κατά αυτόν τον τρόπο το κουπόνι περιφέρεται στον εικονικό δακτύλιο. Ο κάτοχος του `κουπονιού µπορεί να εισέρθει στο ΚΤ Η διάταξη των διεργασιών σε δακτύλιο είναι µια λογική διάταξη, ανεξάρτητη απο την πραγµατική Η απόκριση του αλγόριθµου για µια µόνο αίτηση είναι n στη χειρότερη περίπτωση -- n στη µέση περίπτωση 2 Ακόµα και όταν καµία διεργασία δεν ενδιαφέρεται να εισέλθει σε ΚΤ, το κουπόνι µεταδίδεται Ανεκτικότητα σε Σφάλµατα ; Αποκατάσταση δακτυλίου Αποκατάσταση κουπονιού Βελτίωση: (αλγόριθµος του Chandy) Αποφεύγεται η άσκοπη περιφορά του κουπονιού εφόσον καµία διεργασία δεν επιθυµεί να εισέλθει σε ΚΤ εν απαιτείται καµία λογική διάταξη Το κουπόνι µεταβιβάζεται από τη διεργασία που το κατέχει, εφόσον ζητηθεί Ο Αλγόριθµος του Raymond Αλγόριθµου RaymondME Αλγόριθµος RaymondME Υπάρχει µια ϕάση αρχικοποίησης του συστήµατος όπου όλες οι διεργασίες κατασκευάζουν ένα επικαλυπτικό δέντρο. Η ϱίζα του δέντρου δηµιουργεί ένα ειδικό µήνυµα κουπόνι. Το κουπόνι διασχίζει τις ακµές του δέντρου στο µονοπάτι απο την ϱίζα µέχρι τη διεργασία που το Ϲήτησε. Καθώς µεταβιβάζεται το κουπόνι, η κατεύθυνση των ακµών αλλάζει κατά µήκος του µονοπατιού, προκειµένου στη νέα ϱίζα του δέντρου να ϐρίσκεται η διεργασία που Ϲήτησε το κουπόνι. Κάθε διεργασία διατηρεί ένα δείκτη στο µονοπάτι που οδηγεί στη ϱίζα, καθώς και µια ουρά όπου ϐρίσκονται οι αιτήσεις της ίδιας ή και άλλων διεργασιών που δεν έχουν ακόµα το κουπόνι. Η διάταξη των διεργασιών σε ένα λογικό επικαλυπτικό δέντρο µειώνει το πλήθος των µηνυµάτων που ανταλλάσσονται σε O(log n) Αρχικό ίκτυο Το δίκτυο έχει µονάδες, 6 κανάλια Η διεργασία 1 είναι η ϱίζα του δέντρου. Ολες οι ουρές είναι άδειες

Αλγόριθµου RaymondME Αλγόριθµου RaymondME Η διεργασία Η διεργασία επιθυµεί να εισέλθει σε ΚΤ επιθυµεί να εισέλθει σε ΚΤ εισάγει την αίτηση στην ουρά της εισάγει την αίτηση στην ουρά της επεξεργάζεται την αίτηση (εφόσον αρχικά η ουρά ήταν άδεια) στέλνει µήνυµα αίτησης στην Η διεργασία αποθηκεύει το µήνυµα στην ουρά της request Αλγόριθµου RaymondME Αλγόριθµου RaymondME Η διεργασία επιθυµεί να εισέλθει σε ΚΤ Η διεργασία εισάγει την αίτηση στην ουρά της επεξεργάζεται την αίτηση (εφόσον αρχικά η ουρά ήταν άδεια) επιθυµεί να εισέλθει σε ΚΤ εισάγει την αίτηση στην ουρά της στέλνει µήνυµα αίτησης στην Η διεργασία αποθηκεύει το µήνυµα στην ουρά της επεξεργάζεται την αίτηση (εφόσον αρχικά η ουρά ήταν άδεια) στέλνει µήνυµα αίτησης στην 1 Η διεργασία 1 αποθηκεύει το µήνυµα request

Αλγόριθµου RaymondME Αλγόριθµου RaymondME Η διεργασία Η διεργασία επιθυµεί να εισέλθει σε ΚΤ εισάγει την αίτηση στην ουρά της επιθυµεί να εισέλθει σε ΚΤ εισάγει την αίτηση στην ουρά της επεξεργάζεται την αίτηση (εφόσον αρχικά η ουρά ήταν άδεια) request επεξεργάζεται την αίτηση (εφόσον αρχικά η ουρά ήταν άδεια) στέλνει µήνυµα αίτησης στην, στέλνει µήνυµα αίτησης στην Η διεργασία, αποθηκεύει το µήνυµα στην ουρά της η ουρά δεν είναι άδεια δεν στέλνει κάποιο µήνυµα στην 1 Αλγόριθµου RaymondME Η διεργασία 1 ϐγαίνει απο το ΚΤ Αλγόριθµου RaymondME Η διεργασία 1 ϐγαίνει απο το ΚΤ στέλνει το κουπόνι στην αντιστρέφει την ακµή στέλνει το κουπόνι στην αντιστρέφει την ακµή Η διεργασία στέλνει το κουπόνι στην κουπόνι, αντιστρέφει την ακµή, κουπόνι

Αλγόριθµου RaymondME Η διεργασία 1 ϐγαίνει απο το ΚΤ στέλνει το κουπόνι στην αντιστρέφει την ακµή Αλγόριθµου RaymondME Η διεργασία εισέρχεται στο ΚΤ Η διεργασία στέλνει το κουπόνι στην αντιστρέφει την ακµή request,, επεξεργάζεται την επόµενη αίτηση στέλνει µήνυµα αίτησης στην Η διεργασία αποθηκεύει το µήνυµα στην ουρά της Αλγόριθµου RaymondME Αλγόριθµου RaymondME Η διεργασία Η διεργασία εισέρχεται στο ΚΤ ϐγαίνει απο το ΚΤ εισέρχεται στο ΚΤ ϐγαίνει απο το ΚΤ κουπόνι στέλνει το κουπόνι στην στέλνει το κουπόνι στην αντιστρέφει την ακµή κουπόνι αντιστρέφει την ακµή Η διεργασία στέλνει το κουπόνι στην αντιστρέφει την ακµή

Χαρακτηριστικά του Αλγόριθµου RaymondME Σύνοψη 6 ης ιάλεξης Η απόκριση του αλγόριθµου για µια µόνο αίτηση είναι O (log n) -- για τυχαίες κατασκευές λογικών δέντρων Οταν καµία διεργασία δεν ενδιαφέρεται να εισέλθει σε ΚΤ, το κουπόνι δεν µεταδίδεται Ανεκτικότητα σε Σφάλµατα ; Αποκατάσταση επικαλυπτικού δέντρου Αποκατάσταση κουπονιού εν συµµετέχουν όλες οι διεργασίες άµεσα στην απόφαση επιλογής της διεργασίες που ϑα αποκτήσει πρόσβαση στο ΚΤ Η λογική δοµή παραµένει ακυκλική κατά την εκτέλεση του αλγόριθµου Προηγούµενο Μάθηµα Προηγούµενο Μάθηµα Βυζαντινά Σφάλµατα Ασύγχρονα Κατανεµηµένα Συστήµατα Ασύγχρονα Κατανεµηµένα Συστήµατα ιάταξη Γεγονότων Λογικός Χρόνος Αµοιβαίος Αποκλεισµός Σύνοψη Μαθήµατος Σύνοψη Μαθήµατος η Ασκηση Επόµενο Μάθηµα Σύνοψη Μαθήµατος Βιβλιογραφία (1) Ασύγχρονα Κατανεµηµένα Συστήµατα ιάταξη Γεγονότων Σχέση συνέβη-πριν Λογικός Χρόνος Λογικά Ρολόγια Lamport Αµοιβαίος Αποκλεισµός Συγκεντρωτική Λύση Χρήση Λογικών Ρολογιών Χρήση Λογικών οµών Βιβλίο Κατανεµηµένα Συστήµατα µε Java (Ι.Κ.Κάβουρας, Ι.Ζ.Μήλης, Γ.Β.Ξυλωµένος, Α.Α.Ρουκουνάκη) 1. Κεφάλαιο 2: ιάταξη γεγονότων 2. Κεφάλαιο : Αµοιβαίος αποκλεισµός Βιβλίο Distributed Algorithms" (N.Lynch) 1. Κεφάλαιο 18: Logical Time Βιβλίο Distributed Computing Fundamentals, Simulations, and Advanced Topics" (H.Attiya, J.Welch) 1. Κεφάλαιο 6: Causality and Time -- Μόνο 6.1

Βιβλιογραφία (2) Βιβλίο Introduction to Distributed Algorithms" (G.Tel) 1. Κεφάλαιο 2: The Model -- Μόνο 2. Βιβλίο Distributed Systems, Concepts and Design" (G.Coulouris, J.Dollimore, T.Kindberg) 1. Κεφάλαιο 10: Time and Global States -- Μόνο 10. 2. Κεφάλαιο 11: Coordination and Agreement -- Μόνο 11.2 Βιβλίο Distributed Systems: Principles and Paradigms" (A.Tanenbaum, M.Steen) 1. Κεφάλαιο : Synchronization -- Μόνο.2 1 o Ερώτηµα Θεωρείστε ένα σύγχρονο κατανεµηµένο σύστηµα µε n διεργασίες συνδεδεµένες µέσω ενός πλήρως συνδεδεµένου δικτύου, όπου κάθε διεργασία έχει µια µοναδική ταυτότητα και γνωρίζει τη δοµή του δικτύου. Κάθε διεργασία u δέχεται ως είσοδο έναν ακέραιο αριθµό iu από το σύνολο S, δηλ. iu S. Τροποποιείστε τον αλγόριθµο συναίνεσης FloodSet έτσι ώστε αν προκύψουν σ < σ σφάλµατα, τότε όλες οι εν λειτουργία διεργασίες να αποφασίσουν (χωρίς απαραιτήτως να τερµατίσουν) στο τέλος του γύρου σ + 2. Αναλύστε την ορθότητα, χρονική πολυπλοκότητα και πολυπλοκότητα µηνυµάτων. Αποδείξτε τους ισχυρισµούς σας. 2 o Ερώτηµα Θεωρείστε ένα σύγχρονο κατανεµηµένο σύστηµα µε n διεργασίες συνδεδεµένες µέσω ενός γενικού δικτύου, όπου κάθε διεργασία έχει µια µοναδική ταυτότητα και γνωρίζει τη διάµετρο του δικτύου. Κάθε διεργασία u δέχεται ως είσοδο έναν ακέραιο αριθµό iu από το σύνολο S, δηλ. iu S. Τροποποιείστε τον αλγόριθµο συναίνεσης FloodSet έτσι ώστε να λειτουργεί σωστά σε οποιαδήποτε τοπολογία. Αναλύστε την ορθότητα, χρονική πολυπλοκότητα και πολυπλοκότητα µηνυµάτων. Αποδείξτε τους ισχυρισµούς σας. o Ερώτηµα Υλοποιείστε στο σύστηµα Shawn έναν αλγόριθµο ϐασισµένο στον BFS ο οποίος να δέχεται δύο παραµέτρους: AM και MSGS. Οι διεργασίες για τις οποίες ισχύει id % AM == 0 (όπου id η ταυτότητα της κάθε διεργασίας) πρέπει να στείλουν στην διεργασία 0 ένα πλήθος από MSGS µηνύµατα. Κάθε µήνυµα περιέχει ένα τυχαίο ακέραιο. Η διεργασία 0 συλλέγει όλα τα µηνύµατα και υπολογίζει το άθροισµα. Μελετήστε την συµπεριφορά του αλγόριθµου στις τοπολογίες που σας έχουν δωθεί. Μετρήστε την χρονική πολυπλοκότητα και πολυπλοκότητα επικοινωνίας του αλγορίθµου. Σχολιάστε την συµπεριφορά του αλγορίθµου.

Τυπικά Θέµατα Επόµενο Μάθηµα Παράδωση σε 2 ευτέρες ευτέρα, 6 εκεµβρίου Ατοµική Ασκηση Συνεισφέρει 2 ϐαθµούς στον τελικό ϐαθµό Καθολικές Καταστάσεις Κατασκευή Καθολικών Καταστάσεων Συνεπή Ολικά Στιγµιότυπα