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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

Πρόλογος... xv. Κεφάλαιο 1: Εισαγωγή... 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

P (M = 9) = e 9! =

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25)

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΙΑΤΜΗΜΑΤΙΚΟ ΠΜΣ «ΜΑΘΗΜΑΤΙΚΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΤΩΝ ΑΠΟΦΑΣΕΩΝ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ η Σειρά Ασκήσεων ΑΠΑΝΤΗΣΕΙΣ

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

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

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

Consensus and related problems

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

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

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

τη µέθοδο της µαθηµατικής επαγωγής για να αποδείξουµε τη Ϲητούµενη ισότητα.

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

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

ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ

f (x) = l R, τότε f (x 0 ) = l. = lim (0) = lim f(x) = f(x) f(0) = xf (ξ x ). = l. Εστω ε > 0. Αφού lim f (x) = l R, υπάρχει δ > 0

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

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

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

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

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

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

for for for for( . */

q={(1+2)/2}=1 A(1,2)= MERGE( 4, 6 ) = 4 6 q=[(3+4)/2]=3 A(1,4)= MERGE( 4 6, 5 8 ) = q=[(5+6)/2]=5 A(5,6)= MERGE( 2, 9 ) = 2 9

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

Αλγόριθµοι Οπισθοδρόµησης

Κατευθυνόµενα γραφήµατα. Στοιχεία Θεωρίας Γραφηµάτων (1) Πολυγραφήµατα (Multigraphs)

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

Έλεγχος Ταυτοχρονισμού

Υπολογιστικό Πρόβληµα

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

ΚΕΦΑΛΑΙΟ 3: Συνθήκες Αλυσίδων

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

Γράφοι (συνέχεια) Ο αλγόριθµος Dijkstra για εύρεση βραχυτέρων µονοπατιών Ta µονοπάτια Euler

Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες]

PLC Σύνδεση ιακοπτών. Εισαγ γωγή στα. Η λογική του προγραµµατισµού. Τυπική Γραµµή ιαγράµµατος Κλίµακας. Βασικά Στοιχεία & Συνδυασµοί

Transcript:

Προηγούµενο Μάθηµα Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Ιωάννης Χατζηγιαννάκης ευτέρα, 20 εκεµβρίου, 2010 Αίθουσα Β3 Ασύγχρονα Κατανεµηµένα Συστήµατα Καθολικές Καταστάσεις Κατασκευή Καθολικών Καταστάσεων Παθητική Παρατήρηση µε Φυσικά Ρολόγια Παθητική Παρατήρηση µε Λογικά Ρολόγια Συνεπή Ολικά Στιγµιότυπα Συνεπή Ολικά Στιγµιότυπα µε Φυσικά Ρολόγια Συνεπή Ολικά Στιγµιότυπα µε Λογικά Ρολόγια Ο Αλγόριθµος των Chandy και Lamport Συγχρονιστές Συγχρονισµός Ρολογιών Ορισµοί Τοπική ιστορία Ορισµοί Καθολική ιστορία / Καθολική κατάσταση Ορίζουµε ως συµβάν σ u µια ενέργεια ɛ που επιφέρει µια αλλαγή στην κατάσταση κάποιας διεργασίας Pu Υποθέτουµε ότι οι διεργασίες εξελίσσονται σειριακά Υπάρχει µια αυστηρή διάταξη των συµβάντων σ1 u, σu 2,... κάθε διεργασίας Pu όπου σk u, σk+1 u σηµαίνει ότι το σu k συνέβη πριν το σk+1 u Τοπική ιστορία (local history) Η τοπική ιστορία της διεργασίας Pu συµβολίζετε µε hu και αποτελεί την ακολουθία των συµβάντων που πραγµατοποιήθηκαν στην διεργασία, π.χ. hu = σ u 1, σu 2, σu 3, σu 4. Καθολική ιστορία (global history) Η καθολική ιστορία H ενός κατανεµηµένου συστήµατος ορίζεται ως η ένωση των τοπικών ιστοριών όλων των διεργασιών που συµµετέχουν σε αυτό, δηλ. H = h1... hn. Καθολική κατάσταση (global state) Η καθολική κατάσταση ενός κατανεµηµένου συστήµατος συµβολίζετε µε Σ και ορίζεται ως η ένωση των τοπικών καταστάσεων όλων των διεργασιών που συµµετέχουν σε αυτό, δηλ. Σ = {κ 1,... κ n }.

Παράδειγµα Καθολική ιστορία / Καθολική κατάσταση Ορισµοί Τοµή / Σύνορο τοµής Εκτέλεση συστήµατος διάγραµµα µηνυµάτων σ 1 1 σ 1 2 σ 1 3 σ 1 4 σ 1 5 σ 1 6 P1 σ 2 1 σ 2 2 σ 2 3 P2 P3 σ 3 1 σ 3 2 σ 3 3 σ 3 4 σ 3 5 σ 3 6 Καθολική ιστορία -- H = h1 h2 h3 Το σύνολο αυτό είναι µόνο µερικώς διατεταµένο. Καθολική κατάσταση -- Σ1 = {κ 1 2, κ2 1, κ3 2 } Καθολική κατάσταση -- Σ2 = {κ 1 3, κ2 2, κ3 4 } Τοµή (cut) Μια τοµή C ενός κατανεµηµένου συστήµατος είναι ένα υποσύνολο της καθολικής ιστορίας H που αποτελείται από σ u 0 αρχικά συµβάντα από κάθε διεργασία Pu, δηλ. C = h1 σ1... hn σn. Εποµένως, µια τοµή προσδιορίζεται µέσω του διανύσµατος {σ 1,... σ n }. Σύνορο τοµής (cut frontier) Το σύνολο των τελευταίων συµβάντων {max(σ 1 ),..., max(σ n )} που περιλαµβάνοντα στην τοµή C καλείται σύνορο της τοµής. Παράδειγµα Τοµή / Σύνορο τοµής Ορισµός Συνεπής Τοµή Εκτέλεση συστήµατος διάγραµµα µηνυµάτων P1 P2 σ 1 1 σ 1 2 σ 1 3 σ 1 4 σ 1 5 σ 1 6 σ 2 1 σ 2 2 σ 2 3 Συνεπής Τοµή (consistent cut) Μια τοµή C είναι συνεπής αν για όλα τα συµβάντα σ και σ ισχύει ότι: σ C ( σ σ ) σ C P3 σ 3 1 σ 3 2 σ 3 3 σ 3 4 C1 σ 3 5 σ 3 6 C1 = h σ1 5 1 h σ2 2 2 h σ3 4 3 = {σ 1 1,..., σ1 5, σ2 1, σ2 2, σ3 1,..., σ3 4 } Σύνορο τοµής της C1 είναι το {σ 1 5, σ2 2, σ3 4 } C2 = h σ1 3 1 h σ2 2 2 h σ3 6 3 = {σ 1 1,..., σ1 3, σ2 1, σ2 2, σ3 1,..., σ3 6 } Σύνορο τοµής της C2 είναι το {σ 1 3, σ2 2, σ3 6 } C2 Μία καθολική κατάσταση είναι συνεπής όταν αντιστοιχεί σε µια συνεπή τοµή Οι συνεπής καθολικές καταστάσεις είναι εκείνες που µπορούν να συµβούν σε µια πραγµατική εκτέλεση ενός κατανεµηµένου συστήµατος

Παθητική Κατασκευή Καθολικών Καταστάσεων Μια διεργασία ϑέλει να µάθει την καθολική κατάσταση του κατανεµηµένου συστήµατος Ονοµάζουµε την διεργασία monitor εν στέλνει κανένα µήνυµα παθητικά παρακολουθεί το σύστηµα Οι άλλες διεργασίες µόλις επεξεργαστούν ένα συµβάν, στέλνουν ένα µήνυµα στην P0 περιγράφοντας το Η P0 κατασκευάζει µια παρατήρηση (observation) της συγκεκριµένης εκτέλεσης (run) του κατανεµηµένου συστήµατος Η κατασκευή της παρατήρησης προκύπτει από την ακολουθία των γεγονότων, µε την σειρά µε την οποία έλαβε η P0 τα αντίστοιχα µηνύµατα Παράδειγµα Παρατήρησης O 1 = {σ 2 1, σ 1 1, σ 3 1, σ 3 2, σ 3 4, σ 1 2, σ 2 2, σ 3 3, σ 1 3, σ 1 4, σ 3 5,...} P0 P1 P2 P3 σ 0 1 σ 0 2 σ 0 3 σ0 4 σ0 5 σ 0 6 σ0 7 σ0 8 σ 0 9 σ 0 10 σ 0 11 σ 1 1 σ 1 2 σ 1 3 σ 1 4 σ 1 5 σ 1 6 σ 2 1 σ 2 2 σ 2 3 σ 3 1 σ 3 2 σ 3 3 σ 3 4 σ 3 5 σ 3 6 εν αντιστοιχεί σε εκτέλεση Η διάταξη των συµβάντων της P3 παραβιάζει τη διάταξή τους στο τοπικό ιστορικό της διεργασίας Το σ 3 4 εµφανίζεται πριν από το σ3 3 Παθητική Παρατήρηση µε Φυσικά Ρολόγια Παθητική Παρατήρηση µε Λογικά Ρολόγια Θεωρούµε ότι οι κόµβοι διαθέτουν ένα ϱολόι Τα ϱολόγια των κόµβων είναι συγχρονισµένα Υπάρχει ένα άνω ϕράγµα µ l + d το οποίο είναι γνωστό Η διεργασία monitor, τη χρονική στιγµή t καταγράφει όλα τα µηνύµατα που έχει λάβει µε σφραγίδες χρόνου µέχρι t µ µε αύξουσα διάταξη σφραγίδων χρόνου Οι παρατηρήσεις της διεργασίας monitor µπορούν να χρησιµοποιηθούν για την κατασκευή συνεπών καθολικών καταστάσεων Βασισµένο στον σχεδιασµό του Συγχρονιστής των Tel και Leeuwen Ο αλγόριθµος LogicalTimeSnapshot Θεωρούµε ότι οι κόµβοι έχουν πρόσβαση σε ένα λογικό ϱολόι που διατηρεί µια τοπική διεργασία που εκτελεί τον αλγόριθµο LamportTime Υποθέτουµε ότι τα κανάλια επικοινωνίας παραδίδουν τα µηνύµατα µε σειρά FIFO. Εισάγουµε έναν µηχανισµό ανίχνευσης χάσµατος (gap detection) για να ελένξουµε αν τα µηνύµατα είναι ευσταθή Η διεργασία monitor, τη χρονική στιγµή t καταγράφει όλα τα ευσταθή µηνύµατα που έχει λάβει µε αύξουσα διάταξη χρονοσφραγίδων Οι παρατηρήσεις της διεργασίας monitor µπορούν να χρησιµοποιηθούν για την κατασκευή συνεπών καθολικών καταστάσεων

Ανίχνευση Χάσµατος (Gap Detection) Ενεργητική Κατασκευή Καθολικών Καταστάσεων Ανίχνευση Χάσµατος εδοµένων δύο συµβάντων σ και σ µε χρονοσφραγίδες LC(σ) και LC(σ ) για τις οποίες ισχύει LC(σ) < LC(σ ), αποφάσισε αν υπάρχει κάποιο άλλο συµβάν σ τέτοιο ώστε LC(σ) < LC(σ ) < LC(σ ) Μπορεί να παραλάβουµε ένα µήνυµα που αφορά το συµβάν σ µετά από το µήνυµα που αφορά το συµβάν σ ενώ LC(σ ) < LC(σ ) Οµως, αν η P0 παραλάβει ένα µήνυµα m από την διεργασία Pu µε χρονοσφραγίδα LC(m) είναι ϐέβαιο ότι κανένα άλλο µήνυµα m δεν µπορεί να ληφθεί από την Pu µε χρονοσφραγίδα LC(m ) < LC(m) Το µήνυµα m χαρακτηρίζεται ευσταθές Η προσέγγιση των στιγµιότυπων δίνει ενεργό ϱόλο στην διεργασία monitor η οποία καθορίζει πότε ϑα εκτελεστεί η διαδικασία της σύνθεσης της καθολικής κατάστασης Με άλλα λόγια η P0 λαµβάνει φωτογραφίες του συστήµατος, τις οποίες αποκαλούµε στιγµιότυπα (snapshots) Επίσης, κατά την καταγραφή της καθολικής κατάστασης του συστήµατος, µας ενδιαφέρει να αποτυπώσουµε την κατάσταση των καναλιών Κατάσταση καναλιού (channel state) Η κατάσταση κάθε καναλιού Cuv που συνδέει την διεργασία Pu µε την διεργασία Pv, είναι όλα τα µηνύµατα που έχει στείλει η Pu στην διεργασία Pv, και η Pv δεν έχει ακόµη λάβει. Συνεπή Ολικά Στιγµιότυπα µε Φυσικά Ρολόγια Συνεπή Ολικά Στιγµιότυπα µε Λογικά Ρολόγια Θεωρούµε ότι οι κόµβοι διαθέτουν ένα ϱολόι Τα ϱολόγια των κόµβων είναι συγχρονισµένα Υπάρχει ένα άνω ϕράγµα µ l + d το οποίο είναι γνωστό Η διεργασία monitor, επιλέγει µια χρονική στιγµή t αρκετά µεγάλη, έτσι ώστε να εγγυηθεί ότι ένα µήνυµα που εστάλη τώρα ϑα έχει ληφθεί από όλες τις υπόλοιπες διεργασίες πριν την t Οι διεργασίες καταγράφουν την καθολική τους κατάσταση και την κατάσταση των καναλιών, στον ίδιο πραγµατικό χρόνο Εφόσον τα ϕυσικά ϱολόγια ικανοποιούν τη συνθήκη του ϱολογιού, η κατασκευασµένη καθολική κατάσταση είναι συνεπής Εφόσον τα λογικά ϱολόγια ικανοποιούν τη συνθήκη του ϱολογιού, ϑα ήταν καλύτερο να χρησιµοποιήσουµε λογικά ϱολόγια Οµως πως ϑα ορίσουµε την χρονική στιγµή t µε την χρήση λογικών ϱολογιών; Επίσης, στο προηγούµενο πρωτόκολλο υποθέσαµε ότι η P0 µπορεί να υπολογίσει το t Τώρα υποθέτουµε ότι η P0 µπορεί να υπολογίσει µια αντίστοιχη τιµή για το λογικό ϱολόι ω αρκετά µεγάλη, ώστε κανένα λογικό ϱολόι να µπορεί να ϕτάσει την τιµή αυτήν Ασθενέστερη υπόθεση

Λογικά Ρολόγια Αλγόριθµος των Chandy και Lamport Ορθότητα του Αλγόριθµου των Chandy και Lamport (1) Ο αλγόριθµος των Chandy και Lamport κατασκευάζει συνεπή ολικά στιγµιότυπα χωρίς την χρήση λογικών ϱολογιών Οι Chandy και Lamport παρατήρησαν ότι η διεργασία δεν κάνει τίποτα µεταξύ της λήψης του µηνύµατος ΠάρεΣτιγµιότυπο(ω ) και της λήψης ενός κενού µηνύµατος από µια άλλη διεργασία Εποµένως το λογικό ϱολόι της διεργασίας εξαναγκάζεται να πάρει την τιµή ω Μπορούµε να αντικαταστήσουµε το µήνυµα ΠάρεΣτιγµιότυπο(ω ) µε ένα απλό µήνυµα ΠάρεΣτιγµιότυπο η διεργασία καταγράφει την τοπική της κατάσταση µόλις λάβει το µήνυµα ΠάρεΣτιγµιότυπο Οι ιδιότητες των λογικών ϱολογιών αντικαθιστώνται από την ανταλλαγή τοπικών µηνυµάτων ελέγχου Θεώρηµα (ChandyLamportSnapshot.1) Ο αλγόριθµος ChandyLamportSnapshot καταχωρεί ένα συνεπές ολικό στιγµιότυπο για τον Α. Απόδειξη: Εστω η εκτέλεση α της διεργασίας του υψηλότερου επίπεδου A Εστω ότι κατά την διάρκεια της εκτέλεσης, στην κατάσταση Σɛ ενεργοποιήθηκε ο αλγόριθµος ChandyLamportSnapshot, ο οποίος τερµάτισε στην κατάσταση Στ και κατέγραψε την κατάσταση Σ Εστω α1 το µέρος της α πριν από την κατάσταση Σɛ Εστω α2 το µέρος της α µετά από την κατάσταση Στ Ορθότητα του Αλγόριθµου των Chandy και Lamport (2) Ορθότητα του Αλγόριθµου των Chandy και Lamport (3) Το ολικό στιγµιότυπο Σ είναι συνεπές αν υπάρχει εκτέλεση α τέτοια ώστε καµία διεργασία δεν µπορεί να ξεχωρίσει την α από την α Η α ξεκινά µε α1 και καταλήγει µε α2 Τα Σɛ, Σ, Στ εµφανίζονται µε αυτή την σειρά στην α Ο στόχος µας είναι να επαναδιατάξουµε τα συµβάντα της α έτσι ώστε να καταλήξουµε σε µια εκτέλεση α στην οποία τα Σɛ, Σ, Στ εµφανίζονται µε την ίδια σειρά. Στην ουσία επιλέγουµε λογικά ανεξάρτητα συµβάντα που πραγµατοποιούνται σε διαφορετικές διεργασίες και τα επαναδιατάσουµε. Εστω σk και σk+1 διαδοχικά συµβάντα στην α τα οποία έλαβαν χώρα στις διεργασίες Pu και Pv και είναι µετά και προ καταχώρισης αντίστοιχα Αρα, δεν µπορεί το σk να είναι η αποστολή ενός µηνύµατος m και το σk+1 να είναι η παραλαβή του m Οταν η Pu καταχώρησε την κατάσταση της έστειλε αµέσως το µήνυµα P arestigmi otupo στη Pv Εφόσον τα κανάλια είναι FIFO το µήνυµα έφτασε στην Pv πριν το m γιατί το σk+1 ϑα ήταν µετά την καταχώρηση, άτοπο. Επιπλέον, η κατάσταση της Pv µετά το σk+1 δεν επηρεάζεται από το σk γιατί αυτό συµβαίνει σε άλλη διεργασία Επίσης, η κατάσταση της Pu µετά το σk δεν επηρεάζεται από το σk+1 Εποµένως, µπορούµε να εναλλάξουµε τα σk και σk+1

Ορθότητα του Αλγόριθµου των Chandy και Lamport (4) Χαρακτηριστικά του Αλγόριθµου των Chandy και Lamport Με συνεχείς τέτοιες εναλλαγές παίρνουµε µια εκτέλεση α όπου όλα τα συµβάντα προ καταχώρισης προηγούνται όλων των συµβάντων µετά καταχώρισης Η α ξεκινά µε α1 και καταλήγει µε α2 Η Σ εµφανίζεται στην α αµέσως πριν την α2 Ολες οι εναλλαγές που έγιναν αφορούσαν συµβάντα µετά την Σɛ και πριν την Στ Το Σ είναι η κατάσταση του δικτύου µετά το τελευταίο προ καταχώρισης συµβάν στην εκτέλεση α και πριν το πρώτο µετά καταχώρισης συµβάν Με αυτό τον τρόπο καταλήγουµε στην εκτέλεση α όπου καµία διεργασία δεν µπορεί να ξεχωρίσει την α από την α. Ο αλγόριθµος είναι σωστός κατασκευάζει συνεπή ολικά στιγµιότυπα Η πολυπλοκότητα επικοινωνίας είναι O ( E ) Η χρονική πολυπλοκότητα δεν είναι εύκολο να υπολογιστεί διότι ταυτόχρονα στέλνει µηνύµατα και η διεργασία υψηλότερου επιπέδου Αν αγνοήσουµε πιθανές καθυστερήσεις που προκύπτουν από τις αποστολές των µηνυµάτων της διεργασίας του υψηλότερου επιπέδου, ο αλγόριθµος ChandyLamportSnapshot ϑα τερµατίσει εντός χρόνου O (δ(l + d)) Σύνοψη 8 ης ιάλεξης Γενικά Προηγούµενο Μάθηµα Καθολικές Καταστάσεις Κατασκευή Καθολικών Καταστάσεων Συνεπή Ολικά Στιγµιότυπα Ασύγχρονα Κατανεµηµένα Συστήµατα Αποτίµηση Καθολικού Κατηγορήµατος Ανίχνευση Τερµατισµού Σύνοψη Μαθήµατος Σύνοψη Μαθήµατος Βιβλιογραφία Επόµενη ιάλεξη Σε πολλά ϑεµελιώδη προβλήµατα του κατανεµηµένου υπολογισµού, π.χ. Ανίχνευση αδιεξόδων Ανίχνευση τερµατισµού Παρακολούθηση και αποσφαλµάτωση ιαµοιρασµός πόρων Garbage collection Ανίχνευση απώλειας σκυτάλης Πρέπει να χαρακτηρίσουµε µια καθολική κατάσταση Κατασκευή µιας καθολικής κατάστασης Αποτίµηση ενός καθολικού κατηγορήµατος στην κατάσταση

Χαρακτηριστικά Προβλήµατος Καθολικά Κατηγορήµατα Καταγραφή µιας καθολικής κατάστασης Ενεργητικά ή Παθητικά Απαιτεί την ανταλλαγή µηνυµάτων Το σύστηµα µπορεί να παρουσιάσει σφάλµατα Η καταγραφή µπορεί να είναι ελλιπείς/λανθασµένη Μια καθολική κατάσταση (ή ένα ολικό στιγµιότυπο) Μπορεί να µην είναι συνεπής Μπορεί να είναι ξεπερασµένο υο διαφορετικές διεργασίες monitor µπορεί να κατασκευάσουν δυο διαφορετικές παρατηρήσεις για την ίδια εκτέλεση Ενα καθολικό κατηγόρηµα (global predicate) Φ είναι µια συνάρτηση από το σύνολο των συνεπών καθολικών καταστάσεων ενός συστήµατος στο σύνολο {true, false} Η Αποτίµησης Καθολικού Κατηγορήµατος (Global Predicate Evaluation, GPE) καθορίζει αν µια καθολική κατάσταση ικανοποιεί κάποιο κατηγόρηµα Φ Ευσταθή Κατηγορήµατα (1) Ευσταθή Κατηγορήµατα (2) Κάποιες ιδιότητες του συστήµατος από τη στιγµή που γίνουν αληθείς, παραµένουν αληθείς Ονοµάζουµε αυτές τις ιδιότητες, ευσταθείς (stable) Ενα κατηγόρηµα που περιγράφει ευσταθείς ιδιότητες χαρακτηρίζεται ευσταθές Οταν το σύστηµα ϐρεθεί σε µια κατάσταση στην οποία το κατηγόρηµα είναι αληθές Παραµένει αληθές σε όλες τις µελλοντικές καταστάσεις που είναι προσπελάσιµες από την κατάσταση αυτήν Παραδείγµατα ευσταθών κατηγορηµάτων Αδιέξοδο Τερµατισµός Απώλεια σκυτάλης Garbage collection Εστω η εκτέλεση α µιας διεργασίας υψηλότερου επίπεδου A Εστω η εκτέλεση ενός αλγόριθµου κατασκευής καθολικών καταστάσεων Κατά την διάρκεια της εκτέλεσης, στην κατάσταση Σɛ ενεργοποιήθηκε ο αλγόριθµος Τερµατίζει στην κατάσταση Στ Καταγράφει την κατάσταση Σ Αν το Φ είναι ευσταθές, τότε (Φ αληθεύει στη Σ ) (Φ αληθεύει στη Στ ) (Φ δεν αληθεύει στη Σ ) (Φ δεν αληθεύει στη Στ )

Ασταθή Κατηγορήµατα (1) Ασταθή Κατηγορήµατα (2) Μερικές καταστάσεις που ϑέλουµε να ανιχνεύσουµε δεν µπορούν πάντα να περιγραφούν µε ευσταθή κατηγορήµατα Ελεγχος δύο ουρών ειδοποίηση του χρήστη όταν το άθροισµα ξεπεράσει µια τιµή Οι ουρές µεταβάλλονται δυναµικά το κατηγόρηµα που περιγράφει την κατάσταση αυτή είναι ασταθές Οταν ϑελήσουµε να αποτιµήσουµε ένα ασταθές κατηγόρηµα µια χρονική στιγµή Μπορεί να αποτιµηθεί ψευδές και µια επόµενη ή προηγούµενη χρονική στιγµή να αποτιµηθεί αληθές Μπορεί να αποτιµηθεί αληθές ενώ όλες τις χρονικές στιγµές να είναι ψευδές ιάγραµµα µηνυµάτων ενός κατανεµηµένου υπολογισµού P1 P2 Φ1 : x == y Φ2 : y x == 2 x = 3 x = 4 x = 5 σ 1 1 σ 1 2 σ 1 3 σ 1 4 σ 1 5 σ 1 6 σ 2 1 σ 2 2 σ 2 3 σ 2 4 σ 2 5 y = 6 y = 4 y = 2 Αν ένα ασταθές κατηγόρηµα ισχύει σε µια καθολική κατάσταση µίας παρατήρησης, τότε η συνθήκη ίσως να ίσχυε κατά τη διάρκεια της πραγµατικής εκτέλεσης Πιθανώς ή Αναµφίβολα Αποτίµηση Πιθανώς Επεκτείνουµε τα καθολικά κατηγορήµατα έτσι ώστε Εφαρµόζονται σε ολόκληρο τον κατανεµηµένο υπολογισµό Σε αντίθεση µε µια µεµονωµένη εκτέλεση ή σε συγκεκριµένες καθολικές καταστάσεις των εκτελέσεων Σκοπός µας είναι να καθορίσουµε περιπτώσεις όπου Ενα καθολικό κατηγόρηµα ήταν αναµφίβολα αληθές (definitely) σε κάποιο σηµείο της εκτέλεσης που παρατηρήσαµε Ενα καθολικό κατηγόρηµα ήταν πιθανώς αληθές (possibly) Υπάρχουν περιπτώσεις που µας ενδιαφέρει να µάθουµε αν πιθανώς µια ιδιότητα ισχύει -- possibly Αλλες ϕορές µας ενδιαφέρει να γνωρίζουµε ακριβώς τι συνέβη κατά την πραγµατική εκτέλεση -- definitely Possibly(Φ) Υπάρχει τουλάχιστον µια συνεπής παρατήρηση Π τέτοια ώστε το Φ αληθεύει σε µια καθολική κατάσταση της Σ(Π) Αν υπάρχει τουλάχιστον µια καθολική κατάσταση για την οποία το Φ είναι αληθές, τότε ϑα υπάρχει τουλάχιστον µια εκτέλεση που να περνάει από την κατάσταση αυτήν Η αποτίµηση του Possibly(Φ) απαιτεί την αναζήτηση ανάµεσα σε όλες τις συνεπείς καθολικές καταστάσεις Μόνο αν το Φ(Σ) είναι ψευδές για όλες τις συνεπείς καθολικές καταστάσεις Σ µπορούµε να αποκλείσουµε το Possibly(Φ)

Αποτίµηση Αναµφίβολα Τερµατισµός Κατανεµηµένου Υπολογισµού (1) Definitely(Φ) Για κάθε συνεπή παρατήρηση Π υπάρχει τουλάχιστον µια καθολική κατάσταση Σ(Π) στην οποία το Φ αληθεύει Ολες οι πιθανές εκτελέσεις ενός υπολογισµού πρέπει να περνούν από µια καθολική κατάσταση, η οποία ικανοποιεί το Φ Πρέπει να ϐρούµε ένα σύνολο καταστάσεων, όπου από µία τουλάχιστον περνά κάθε µία από τις πιθανές εκτελέσεις και σε κάθε µια από τις οποίες το Φ είναι αληθές Η αναζήτηση είναι γραµµική ως προς το πλήθος των συµβάντων Η αναζήτηση είναι εκθετική ως προς το πλήθος των διεργασιών Εστω max(σ) ο µέγιστος αριθµός συµβάντων, τότε το πλήθος των καθολικών καταστάσεων είναι O (max(σ) n ) Κάθε υπολογισµός ενός κατανεµηµένου αλγόριθµου τερµατίζει όταν ο αλγόριθµος ϕτάσει σε µια τερµατική κατάσταση Σε µια κατάσταση που δεν µπορούν να εφαρµοστούν άλλα ϐήµατα του αλγόριθµου Αν όλες οι διεργασίες ϐρίσκονται σε µια τερµατική κατάσταση τότε ο αλγόριθµος έχει τερµατίσει εξωτερικός τερµατισµός Οµως µπορεί ένας αλγόριθµος να είναι σε µια τερµατική κατάσταση ακόµα και αν κάποιες (ή όλες) οι διεργασίες δεν ϐρίσκονται σε µια τερµατική κατάσταση π.χ. κάθε διεργασία δέχεται µηνύµατα αλλά δεν στέλνει Ο υπολογισµός έχει τερµατίσει αλλά οι διεργασίες δεν το γνωρίζουν εσωτερικός τερµατισµός Τερµατισµός Κατανεµηµένου Υπολογισµού (2) Ιδιότητες Τερµατισµού Ο εσωτερικός τερµατισµός καλείται αλλιώς και τερµατισµός µηνυµάτων Παύουν να ανταλλάσσονται µηνύµατα Ο εξωτερικός τερµατισµός καλείται αλλιώς και τερµατισµός διεργασιών Ολες οι διεργασίες ϐρίσκονται σε τερµατική κατάσταση Γενικά, είναι ευκολότερο να σχεδιαστεί ένας αλγόριθµος µε εσωτερικό τερµατισµό από ότι µε εξωτερικό Κατά τον σχεδιασµό του αλγορίθµου όλα τα ϑέµατα που έχουν σχέση µε τον τερµατισµό µπορεί να αγνοηθούν Μπορεί να είναι απαραίτητο όλες οι διεργασίες να ϕτάσουν σε τερµατικές καταστάσεις Επικύρωση αποτελεσµάτων, αποδέσµευση πόρων... Βασιζόµαστε στον ορισµό του προβλήµατος της ανίχνευσης τερµατισµού όπως παρουσιάστηκε από τον Dijkstra Κάθε διεργασία µπορεί να ϐρίσκεται σε µία κατάσταση Ενεργή (active) Παθητική (passive) Μόνο οι ενεργές διεργασίες µπορούν να στείλουν µηνύµατα (ενέργεια εξόδου) Με την λήψη ενός µηνύµατος (ενέργεια εισόδου), µια παθητική διεργασία µετατρέπεται σε ενεργή Η παραλαβή ενός µηνύµατος είναι το µόνο συµβάν που προκαλεί τη µετάβαση µιας παθητικής διεργασίας σε ενεργή Κάθε ενεργή διεργασία µπορεί να γίνει παθητική αυθόρµητα, ανά πάσα στιγµή (εσωτερική ενέργεια)

Αλγόριθµος των Dijkstra και Scholten (1) Αλγόριθµος των Dijkstra και Scholten (2) Εστω P0 η διεργασία συντονιστής Ο αλγόριθµος ϐασίζεται στην κατασκευή ενός επικαλυπτικού αντεστραµµένου δέντρου (inverted tree) µε ϱίζα την διεργασία P Το δέντρο µεταβάλετε κατά την εκτέλεση του ϐασικού αλγόριθµου έτσι ώστε οι ενεργές διεργασίες να έχουν µικρό ύψος (κοντά στην ϱίζα) οι παθητικές διεργασίες να έχουν µεγάλο ύψος (µακριά από την ϱίζα) Τα δέντρα αυτά είναι γνωστά ως έντρα Υπολογισµού Ο τερµατισµός ανιχνεύεται όταν η διεργασία που ϐρίσκεται στην ϱίζα του δέντρου γίνει παθητική Αρχικά υποθέτουµε ότι όλες οι διεργασίες είναι παθητικές εκτός από την διεργασία P0 Εποµένως, ο αλγόριθµος περιορίζεται στους υπολογισµούς διάχυσης (diffusing computations) Κάθε διεργασία αποθηκεύει έναν δείκτη parent προς τον γονέα της στο δέντρο Αν για κάποια διεργασία Pu, parent == null, την ονοµάζουµε ελεύθερη Κάθε διεργασία διατηρεί µια µεταβλητή children που καταγράφει τον αριθµό των παιδιών της στο δέντρο Αλγόριθµος των Dijkstra και Scholten (3) Ορθότητα Αλγόριθµου (1) Εστω ότι η διεργασία Pu P0 είναι ελεύθερη και λαµβάνει ένα µήνυµα από την διεργασία Pv Θέτει parent = Pv (εισάγεται η ακµή uv στο δέντρο) Ενηµερώνει την Pv (µήνυµα ελέγχου) Η διεργασία Pv ϑέτει childrenv + + Η Pu δεν είναι ελεύθερη και κάποια στιγµή γίνεται παθητική Ενηµερώνει την Pv (µήνυµα ελέγχου) Η διεργασία Pv ϑέτει childrenv + + Θέτει parent = null (αφαιρείται η ακµή uv από το δέντρο) Αρα όλες οι αποµονωµένες διεργασίες (χωρίς καµία προσκήµενη ακµή) είναι παθητικές Οταν η P0 γίνει παθητική, ο αλγόριθµος τερµατίζει Θεώρηµα 1 Ο αλγόριθµος των Dijkstra και Scholten είναι ένας ορθός αλγόριθµος ανίχνευσης τερµατισµού και χρησιµοποιεί M µηνύµατα ελέγχου, όπου M είναι ο αριθµός των µηνυµάτων που ανταλλάσονται από τον ϐασικό αλγόριθµο. Ο αλγόριθµος επιτυγχάνει αξιοσηµείωτη ισορροπία µεταξύ µηνυµάτων ελέγχου και ϐασικών µηνυµάτων Σύµφωνα µε το κάτω ϕράγµα M στην πολυπλοκότητα επικοινωνίας (ϑεώρηµα 2.2), ο αλγόριθµος είναι ϐέλτιστος

Ορθότητα Αλγόριθµου (2) Ορθότητα Αλγόριθµου (3) Εστω ένα δέντρο υπολογισµού T = (VT, ET ) Το T είναι άδειο ή είναι προσανατολισµένο δέντρο µε ϱίζα P0 Το σύνολο VT περιλαµβάνει όλες τις ενεργές διεργασίες και όλα τα ϐασικά µηνύµατα υπό µεταφορά Ο συντονιστής P0 καλεί τον αλγόριθµο διάδοσης µηνύµατος τερµατισµού όταν P0 VT Εφόσον VT = 0 το κατηγόρηµα term είναι αληθές Στην ουσία, το T διευρύνεται κάθε ϕορά που στέλνεται ένα ϐασικό µήνυµα ή όταν µια διεργασία που δεν υπάρχει στο δέντρο ενεργοποιείται Για να εξασφαλίσουµε την πρόοδο του αλγόριθµου ανίχνευσης, το δέντρο πρέπει να αδειάσει σε πεπερασµένο αριθµό γύρων µετά τον τερµατισµό Η απόδειξη ορθότητας προϋποθέτει ότι το γράφηµα T είναι δέντρο και ότι ϑα αδειάσει µόνο µετά τον τερµατισµό του ϐασικού αλγορίθµου Για κάθε εκτέλεση γ του αλγόριθµου ορίζουµε VT = {u : parentu null} {ϐασικό µήνυµα υπό µεταφορά} {µήνυµα ελέγχου υπό µεταφορά} Ορθότητα Αλγόριθµου (4) Ορθότητα Αλγόριθµου (5) ET = {(u, parentu) : parentu null parentu u} {ϐασικό µήνυµα υπό µεταφορά} {µήνυµα ελέγχου υπό µεταφορά} Η ασφάλεια του αλγόριθµου πηγάζει από την παραδοχή P που ορίζεται ως P = stateu == active u VT (1) (u, v) ET u VT v VT P (2) childrenu = #v : (v, u) ET (3) VT T δέντρο µε ϱίζα P0 (4) (stateu == passive childrenu == 0) u VT (5) stateu == active u VT Το γράφηµα T περιλαµβάνει όλες τις ενεργές διεργασίες (u, v) ET u VT v VT P Το T είναι όντως γράφηµα και όλες οι ακµές κατευθύνονται προς κάποια διεργασία childrenu = #v : (v, u) ET Η καταµέτριση των παιδιών κάθε διεργασίες γίνεται µε σωστό τρόπο VT T δέντρο µε ϱίζα P0 Το T είναι δέντρο µε ϱίζα την P0 (stateu == passive childrenu == 0) u VT Το δέντρο αδειάζει όταν τερµατίσει ο ϐασικός αλγόριθµος

Ορθότητα Αλγόριθµου (6) Ορθότητα Αλγόριθµου (7) Η απόδειξη της ορθότητα ϐασίζεται στην παρατήρηση ότι στην παραδοχή P ισχύει parentu == u µόνο για u == P0 Λήµα 1 Η παραδοχή P ισχύει για τον αλγόριθµο των Dijkstra και Scholten. Εστω S = n u=0 childrenu το άθροισµα όλων των µετρητών παιδιών Αρχικά S = 0 Αυξάνεται όταν στέλνεται ένα ϐασικό µήνυµα Μειώνεται όταν λαµβάνεται ένα µήνυµα ελέγχου εν µπορεί να πάρει αρνητική τιµή, λόγω της (3) Μετά τον τερµατισµό µόνο ενέργειες του αλγόριθµου ανίχνευσης µπορούν να συµβούν Εφόσον το S ελαττώνεται κατά ένα σε κάθε τέτοια µεταβολή, ο αλγόριθµος ϕτάνει σε τερµατική κατάσταση Σε αυτή την κατάσταση το VT δεν περιέχει κανένα µήνυµα Λόγω της (5) το VT δεν περιέχει καµία διεργασία που είναι παθητική Εποµένως το T δεν έχει ϕύλλα και άρα είναι άδειο Το δέντρο άδειασε όταν η P0 διέγραψε τον εαυτό της Ισχύει η απαίτηση της ϐιωσιµότητας (liveness) Ορθότητα Αλγόριθµου (8) Σύνοψη 8 ης ιάλεξης Η απόδειξη της ασφάλειας (safety) προκύπτει εφόσον η P0 καλεί τον αλγόριθµο διάδοσης µηνύµατος τερµατισµού µόνο όταν σβήσει τον εαυτό της από το VT Αρα, λόγω της (4) το T ϑα είναι άδειο όταν συµβεί αυτό Η απόδειξη του µη-επιρεασµού (non-interference) ικανοποιείται (εµφανώς) Προηγούµενο Μάθηµα Καθολικές Καταστάσεις Κατασκευή Καθολικών Καταστάσεων Συνεπή Ολικά Στιγµιότυπα Ασύγχρονα Κατανεµηµένα Συστήµατα Αποτίµηση Καθολικού Κατηγορήµατος Ανίχνευση Τερµατισµού Σύνοψη Μαθήµατος Σύνοψη Μαθήµατος Βιβλιογραφία Επόµενη ιάλεξη

Σύνοψη Μαθήµατος Βιβλιογραφία Ασύγχρονα Κατανεµηµένα Συστήµατα Αποτίµηση Καθολικού Κατηγορήµατος Ανίχνευση Τερµατισµού Αλγόριθµος Francez Αλγόριθµος Dijkstra Αλγόριθµος των Dijkstra και Scholten Βιβλίο Distributed Algorithms" (N.Lynch) 1. Κεφάλαιο 19: Global Snapshots and Stable Properties Βιβλίο Introduction to Distributed Algorithms" (G.Tel) 1. Κεφάλαιο 10: Snapshots Βιβλίο Κατανεµηµένα Συστήµατα µε Java (Ι.Κ.Κάβουρας, Ι.Ζ.Μήλης, Γ.Β.Ξυλωµένος, Α.Α.Ρουκουνάκη) 1. Κεφάλαιο 5: Αποτίµηση καθολικού κατηγορήµατος Επόµενη ιάλεξη Πρωτόκολλα Πληθυσµών