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

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

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

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

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

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

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

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

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

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

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

Γιατί υϖάρχει τέτοια καθολική κατάσταση;

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

ίκτυα Εξισορόϖησης κατάσταση εξισορροϖητή (balancer state): συλλογή από διακριτικά (tokens) στους συνδέσµους εισόδου και εξόδου του µετάβαση εξισορροϖ

a 1d L(A) = {m 1 a m d a d : m i Z} a 11 a A = M B, B = N A, k=1

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

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

Όρια συναρτήσεων. ε > υπάρχει ( ) { } = ± ορίζονται αναλόγως. Η διατύπωση αυτών των ορισµών αφήνεται ως άσκηση. x y = +. = και για κάθε (, ) ( 0,0)

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

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

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

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

cov(x, Y ) = E[(X E[X]) (Y E[Y ])] cov(x, Y ) = E[X Y ] E[X] E[Y ]

Διδάσκων: Καθηγητής Νικόλαος Μαρμαρίδης, Καθηγητής Ιωάννης Μπεληγιάννης

Μαθηµατική Επαγωγή. Ορέστης Τελέλης. Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς

Όρια συναρτήσεων. ε > υπάρχει ( ) { } = ± ορίζονται αναλόγως. Η διατύπωση αυτών των ορισµών αφήνεται ως άσκηση. x y = +. = και για κάθε (, ) ( 0,0)

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

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

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

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

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

Συνεκτικά σύνολα. R είναι συνεκτικά σύνολα.

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

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση

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

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

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

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

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

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

Μαθηµατικό Παράρτηµα 2 Εξισώσεις Διαφορών

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

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

Κεφάλαιο 3β. Ελεύθερα Πρότυπα (µέρος β)

for for for for( . */

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

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

Συνεκτικά σύνολα. R είναι συνεκτικά σύνολα.

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

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

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ ΙΙ (ΠΕΡΙΤΤΟΙ) Ασκησεις - Φυλλαδιο 5

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

Ανω Φράγµα στην Τάξη των Συναρτήσεων. Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων. Παράδειγµα (1/2) O( g(n) ) είναι σύνολο συναρτήσεων:

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

Ανάλυση Χρόνου, Πόρων & Κόστους

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

Συνεχείς συναρτήσεις πολλών µεταβλητών. ε > υπάρχει ( ) ( )

Αποφασισιµότητα / Αναγνωρισιµότητα. Μη Επιλύσιµα Προβλήµατα. Η έννοια της αναγωγής. Τερµατίζει µια δεδοµένη TM για δεδοµένη είσοδο;

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

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ Ι (ΠΕΡΙΤΤΟΙ) Λυσεις Ασκησεων - Φυλλαδιο 3

ILP (integer linear programming) βασιζόμενη εξαρτώμενη από τους πόρους μεταγλώττιση

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

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

Ακαδηµαϊκό Έτος , Εαρινό Εξάµηνο ιδάσκων Καθ.: Νίκος Τσαπατσούλης

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί)

ιοίκηση Παραγωγής και Υπηρεσιών

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

Τίτλος Μαθήματος: Γραμμική Άλγεβρα Ι. Ενότητα: Πινάκες και Γραµµικές Απεικονίσεις. Διδάσκων: Καθηγητής Νικόλαος Μαρμαρίδης. Τμήμα: Μαθηματικών

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ ΙΙ (ΠΕΡΙΤΤΟΙ) Ασκησεις - Φυλλαδιο 9 Επαναληπτικες Ασκησεις

Προσαρµοστικοί Αλγόριθµοι Υλοποίησης Βέλτιστων Ψηφιακών Φίλτρων: Ο αναδροµικός αλγόριθµος ελάχιστων τετραγώνων (RLS Recursive Least Squares)

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Εισαγωγή. Οπως είδαµε για την εκκίνηση της Simplex χρειαζόµαστε µια Αρχική Βασική Εφικτή Λύση. υϊσµός

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Κεφάλαιο 1. Θεωρία Ζήτησης

ΣΥΝΤΕΤΑΓΜΕΝΕΣ ΙΑΝΥΣΜΑΤΟΣ

Γραμμικός Προγραμματισμός Μέθοδος Simplex

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

Κεφάλαιο 3. Ελεύθερα Πρότυπα. στοιχείων του Μ καλείται βάση του e λ παράγει το Μ, και ii) κάθε m M γράφεται κατά µοναδικό

Σηµειώσεις στις σειρές

Ποιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών ; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί);

Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές

Ευκλείδειοι Χώροι. Ορίζουµε ως R n, όπου n N, το σύνολο όλων διατεταµένων n -άδων πραγµατικών αριθµών ( x

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

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

Σχόλιο. Παρατηρήσεις. Παρατηρήσεις. p q p. , p1 p2

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

Αριθµοθεωρητικοί Αλγόριθµοι και το. To Κρυπτοσύστηµα RSA

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

Αρµονική Ανάλυση. Ενότητα: Το ϑεώρηµα παρεµβολής του Riesz και η ανισότητα Hausdorff-Young. Απόστολος Γιαννόπουλος.

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα?

Βασική Εφικτή Λύση. Βασική Εφικτή Λύση

Ανάλυση Σ.Α.Ε στο χώρο κατάστασης

Διδάσκων: Καθηγητής Νικόλαος Μαρμαρίδης, Καθηγητής Ιωάννης Μπεληγιάννης

Γραµµικη Αλγεβρα ΙΙ Ασκησεις - Φυλλαδιο 10

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

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

Τυχαιοκρατικοί Αλγόριθμοι

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

ΣΤΟΧΑΣΤΙΚΕΣ ΙΑ ΙΚΑΣΙΕΣ

ΑΛΓΕΒΡΙΚΕΣ ΟΜΕΣ Ι. Ασκησεις - Φυλλαδιο 2

Transcript:

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

Η Σχέση Happens-Before (Συµβαίνει-ϖριν) Οι εκτελέσεις, ως ακολουθίες γεγονότων, καθορίζουν µια καθολική διάταξη σε αυτά. Ωστόσο είναι δυνατό δύο υπολογιστικά γεγονότα από διαφορετικούς επεξεργαστές να µην επηρεάζουν το ένα το άλλο, παρότι η εκτέλεση καθορίζει µια (αυθαίρετη) διάταξη αυτών. Έτσι, η δοµή αιτιότητας µεταξύ των γεγονότων χάνεται. Έστω a µια αυθαίρετη εκτέλεση. Έστω ότι φ 1 και φ 2 είναι 2 γεγονότα της a που εκτελούνται από τον ίδιο επεξεργαστή. Tο φ 1 εϖηρεάζει αιτιωδώς (casually influences) το φ 2, αν το φ 1 προηγείται του φ 2 στην a. Έστω ότι φ 1 και φ 2 είναι 2 γεγονότα της a που εκτελούνται από διαφορετικές διεργασίες p i και p j, αντίστοιχα. Το φ 1 εϖηρεάζει αιτιωδώς το φ 2 αν το φ 1 είναι γεγονός στο οποίο αποστέλλεται µήνυµα m από την p i στην p j ενώ το φ 2 είναι το γεγονός παραλαβής του m από την p j. Επίσης, ισχύει η µεταβατική ιδιότητα (αν το φ 1 επηρεάζει αιτιωδώς το φ 2 και το φ 2 επηρεάζει αιτιωδώς το φ 3, τότε το φ 1 επηρεάζει αιτιωδώς το φ 3 ). Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 2

Η σχέση Happens-Before (Προηγείται ή Συµβαίνει-ϖριν) Πιο φορµαλιστικά: εδοµένων δύο γεγονότων φ 1 και φ 2 στην a, το φ 1 Συµβαίνει-ϖριν (happens before) από το φ 2, το οποίο συµβολίζεται φ 1 φ 2, αν ισχύει µια από τις ακόλουθες συνθήκες: τα φ 1, φ 2 είναι γεγονότα που εκτελούνται από την ίδια διεργασία p i και το φ 1 προηγείται του φ 2 στην ακολουθία a, το φ 1 είναι γεγονός στο οποίο αποστέλλεται ένα µήνυµα m από µια διεργασία p i σε µια άλλη p j, και το φ 2 είναι το γεγονός παραλαβής του m από την p j, υπάρχει γεγονός φ τέτοιο ώστε φ 1 φ και φ φ 2. Παρατηρούµε ότι η καθορίζει µια µερική διάταξη. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 3

Αιτιώδεις Αναδιατάξεις (Casual Shuffles) Η σχέση Συµβαίνει-ϖριν χαρακτηρίζει τις αιτιώδεις σχέσεις µιας εκτέλεσης. Αν τα γεγονότα µιας εκτέλεσης αναδιαταχθούν χωρίς ωστόσο να καταστρατηγούν τη σχέση Συµβαίνει-ϖριν, το αποτέλεσµα εξακολουθεί να είναι έγκυρη εκτέλεση και οι δύο αυτές εκτελέσεις είναι παρόµοιες σε όλες τις διεργασίες. Ορισµός: Έστω ότι a = exec(c,σ) είναι ένα τµήµα εκτέλεσης. Μια µετάθεση (permutation) π του χρονοδιαγράµµατος σ είναι µια αιτιώδης αναδιάταξη (casual shuffle) του σ αν: o για κάθε j, 0 j n-1, σ j = π j, και o αν ένα µήνυµα m αποστέλλεται από µια διεργασία p j κατά την εκτέλεση του γεγονότος φ της a, τότε στην π το φ προηγείται του γεγονότος παραλαβής του m. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 4

Αιτιώδεις Αναδιατάξεις (Casual Shuffles) Λήµµα 1 Έστω ότι a = exec(c,σ) είναι ένα τµήµα εκτέλεσης. Οποιαδήποτε καθολική διάταξη των γεγονότων του σ είναι συνεπής µε τη σχέση Συµβαίνει-ϖριν της a, είναι µια αιτιώδης αναδιάταξη (casual shuffle) της σ. Λήµµα 2 Έστω ότι a = exec(c,σ) είναι ένα τµήµα εκτέλεσης. Έστω ότι π είναι µια αιτιώδης αναδιάταξη (casual shuffle) του σ. Τότε, a = exec(c,π) είναι ένα έγκυρο τµήµα εκτέλεσης παρόµοιο (indistinguishable) µε το a σε όλες τις διεργασίες. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 5

Λογικά Ρολόγια (Logical Clocks) Πως µϖορούν οι διεργασίες να ϖαρατηρήσουν την σχέση Συµβαίνει-ϖριν σε µια εκτέλεση a; Με κάθε γεγονός φ, συσχετίζουµε µια χρονοσφραγίδα LT(φ) (Logical Time of φ). Χρειαζόµαστε µια µερική διάταξη < στις χρονοσφραγίδες, έτσι ώστε για κάθε ζεύγος γεγονότων φ 1 και φ 2 : αν φ 1 φ 2 τότε LT(φ 1 ) < LT(φ 2 ) Αϖλός Αλγόριθµος για ανάθεση και διατήρηση χρονοσφραγίδων Κάθε διεργασία p j διατηρεί µια τοπική µεταβλητή LT j, που ονοµάζεται λογικό ρολόι (logical clock). Το LT j αποθηκεύει µη-αρνητικούς ακεραίους και έχει αρχική τιµή 0. Ως µέρος κάθε υπολογιστικού γεγονότος φ, η p j αυξάνει το LT j ώστε να είναι µεγαλύτερο κατά µία µονάδα από το µέγιστο της τρέχουσας τιµής του LT j και της µεγαλύτερης χρονοσφραγίδας κάθε µηνύµατος που παραλαµβάνεται στο φ. Σε κάθε µήνυµα που αποστέλλεται στο φ ανατίθεται ως χρονοσφραγίδα το LΤ j. Η χρονοσφραγίδα, LT(φ), που συσχετίζεται µε το γεγονός φ της διεργασίας p j, είναι η νέα τιµή LT j που υπολογίστηκε κατά τη διάρκεια εκτέλεσης του γεγονότος. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 6

Λογικά Ρολόγια (Logical Clocks) Η µερική διάταξη των χρονοσφραγίδων καθορίζεται από την γνωστή σχέση < των ακεραίων. Για κάθε διεργασία p j, το LT j είναι γνήσια αύξων. Τότε, και οι τρεις συνθήκες της σχέσης Συµβαίνει-ϖριν ικανοποιούνται. Θεώρηµα: Έστω ότι a είναι µια αυθαίρετη εκτέλεση και ας υποθέσουµε ότι φ 1 και φ 2 είναι δύο οποιαδήποτε γεγονότα της a. Αν φ 1 φ 2, τότε LT(φ 1 ) < LT(φ 2 ). Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 7

ιανυσµατικά Ρολόγια (Vector Clocks) Αρνητικά Λογικών Ρολογιών Αν LT(φ 1 ) LT(φ 2 ), τότε γνωρίζουµε ότι το φ 1 δεν συµβαίνει πριν το φ 2. Είναι το αντίστροφο αληθές; ΟΧΙ! Είναι δυνατό LT(φ 1 ) < LT(φ 2 ) αλλά να µην ισχύει φ 1 φ 2. Το πρόβληµα είναι ότι η σχέση Συµβαίνει-ϖριν ορίζει µερική διάταξη, ενώ οι λογικές χρονοσφραγίδες είναι ακέραιοι και η < ορίζει καθολική διάταξη. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 8

ιανυσµατικά Ρολόγια (Vector Clocks) Ορισµός: Τα γεγονότα φ 1 και φ 2 συµβαίνουν ταυτόχρονα σε µια εκτέλεση a, το οποίο συµβολίζεται φ 1 a φ 2, αν δεν ισχύει ούτε ότι φ 1 φ 2, ούτε ότι φ 2 φ 1. Αν φ 1 a φ 2, τότε υπάρχουν 2 εκτελέσεις a 1 και a 2, και οι δύο παρόµοιες (indistinguishable) µε την a, τέτοιες ώστε το φ 1 συµβαίνει πριν από το φ 2 στην a 1, και το φ 1 συµβαίνει µετά το φ 2 στην a 2 ή το αντίστροφο. οι διεργασίες δεν γνωρίζουν αν το φ 1 συµβαίνει πριν από το φ 2 ή το αντίστροφο στην a, ενώ ότι από τα δύο και αν συµβαίνει οι διεργασίες δεν παρατηρούν κάποια διαφορά. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 9

ιανυσµατικά Ρολόγια (Vector Clocks) Κάθε διεργασία p j διατηρεί µια τοπική µεταβλητή VC j (Vector Clock) που ονοµάζεται διανυσµατικό ρολόι της p j. Το VC j είναι ένας πίνακας n στοιχείων, κάθε στοιχείο του οποίου είναι ένας µη-αρνητικός ακέραιος µε αρχική τιµή 0. Ως µέρος κάθε υπολογιστικού γεγονότος φ µιας διεργασίας p j, η p j ενηµερώνει το VC j ως εξής: o το VC j [j] αυξάνεται κατά 1 o Για κάθε i j, το VC j [i] παίρνει τιµή ίση µε το µέγιστο της τρέχουσας τιµής του και της µεγαλύτερης τιµής της εγγραφής i όλων των διανυσµατικών χρονοσφραγίδων των µηνυµάτων που ελήφθησαν κατά τη διάρκεια εκτέλεσης του φ. o Σε κάθε µήνυµα που αποστέλλεται κατά τη διάρκεια εκτέλεσης του φ ανατίθεται ως χρονοσφραγίδα η νέα τιµή του VC j. Η διανυσµατική χρονοσφραγίδα του φ, VC(φ), είναι η τιµή του VC j στο τέλος της εκτέλεσης του φ. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 10

ιανυσµατικά Ρολόγια (Vector Clocks) Πρόταση: Για κάθε διεργασία p j, σε κάθε προσβάσιµη καθολική κατάσταση, ισχύει ότι VC j [j] VC i [j], για κάθε i, 0 i n-1. Μερική ιάταξη ιανυσµατικών Ρολογιών Έστω ότι v 1 και v 2 είναι δύο διανύσµατα των n ακεραίων το καθένα. Τότε, v 1 v 2 αν και µόνο αν για κάθε j, 0 j n-1, v 1 [j] v 2 [j]; v 1 < v 2 αν και µόνο αν v 1 v 2 και v 1 v 2. Τα διανύσµατα v 1 και v 2 είναι µη συγκρίσιµα αν δεν ισχύει ούτε ότι v 1 v 2, ούτε ότι v 2 v 1. Λέµε ότι οι διανυσµατικές χρονοσφραγίδες εκφράζουν την εκτέλεση ταυτόχρονων γεγονότων (δηλαδή την παραλληλία), αν για κάθε ζεύγος γεγονότων φ 1 και φ 2, φ 1 φ 2 αν και µόνο αν τα VC(φ 1 ) και VC(φ 2 ) είναι µη-συγκρίσιµα. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 11

ιανυσµατικά Ρολόγια (Vector Clocks) Θεώρηµα Έστω ότι a είναι µια αυθαίρετη εκτέλεση και έστω ότι φ 1 και φ 2 είναι δύο οποιαδήποτε γεγονότα της a. Αν φ 1 φ 2 τότε VC(φ 1 ) < VC(φ 2 ). Αϖόδειξη Έστω ότι τα φ 1, φ 2 είναι γεγονότα του ίδιου επεξεργαστή και ας υποθέσουµε ότι το φ 1 προηγείται του φ 2. Γιατί ισχύει ο ισχυρισµός για τα φ 1 και φ 2 σε αυτή την ϖερίϖτωση; Έστω ότι το φ 1 είναι γεγονός στ οποίο αποστέλλεται κάποιο µήνυµα m και φ 2 είναι το γεγονός παραλαβής του µηνύµατος. Γιατί ισχύει ο ισχυρισµός για τα φ 1 και φ 2 σε αυτή την ϖερίϖτωση; Ισχύει η µεταβατική ιδιότητα για τη σχέση σε διανύσµατα. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 12

ιανυσµατικά Ρολόγια (Vector Clocks) Θεώρηµα Έστω ότι a είναι µια αυθαίρετη εκτέλεση και έστω ότι φ 1 και φ 2 είναι δύο οποιαδήποτε γεγονότα της a. Αν VC(φ 1 ) < VC(φ 2 ) τότε φ1 φ 2. Αϖόδειξη Έστω ότι φ 1 και φ 2 είναι δύο γεγονότα που συµβαίνουν ταυτόχρονα, το φ 1 από τη διεργασία p i και το φ 2 από τη p j, p i p j. Ας υποθέσουµε ότι VC i [i](φ 1 ) = m. Ο µόνος τρόπος το i-οστό στοιχείο του διανυσµατικού ρολογιού µιας διεργασίας p j να αποκτήσει τιµή τουλάχιστον m είναι µέσω µιας αλυσίδας µηνυµάτων που ξεκινούν από την p i (είτε στο γεγονός φ 1 ή σε επόµενο γεγονός). Μια τέτοια αλυσίδα θα συνεπαγόταν ότι τα φ 1, φ 2 δεν συµβαίνουν ταυτόχρονα. Άτοπο! Άρα, VC j [i]( φ 2 ) < m VC i (φ 1 ) δεν µπορεί να είναι µικρότερο από VC j (φ 2 ). Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 13

Ένα κάτω όριο στο µέγεθος των διανυσµατικών ρολογιών Ας θεωρήσουµε µια κλίκα και µια εκτέλεση α στην οποία: o Κάθε διεργασία j στέλνει σειριακά ένα µήνυµα στις διεργασίες j+1, j+2,..., n-1, 0, 1,..., j-2. o Αφού σταλούν όλα αυτά τα µηνύµατα, η j λαµβάνει τα µηνύµατα που της έχουν αποσταλεί µε την εξής σειρά: j- 1, j-2,..., 0, n-1, n-2,..., j+2. Τα γεγονότα της διεργασίας p i στην α p i+1 και p j στην α Για κάθε j, έστω ότι a j είναι το γεγονός αποστολής του 1 ου µηνύµατος της j και b j το γεγονός παραλαβής του τελευταίου. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 14

Ένα κάτω όριο στο µέγεθος των διανυσµατικών ρολογιών Λήµµα 1 Για κάθε i, a i+1 b i. Αϖόδειξη Οι αιτιώδεις σχέσεις είναι απλές και δεν υπάρχουν σχέσεις µεταξύ των γεγονότων αποστολής που να προκύπτουν λόγω µεταβατικής ιδιότητας. Η p j+1 δεν στέλνει µήνυµα στην p j. Λήµµα 2 Για κάθε i και j, 0 i j n-1, a i+1 b j. Αϖόδειξη Γιατί αυτό είναι αληθές; Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 15

Ένα κάτω όριο στο µέγεθος των διανυσµατικών ρολογιών Θεώρηµα: Αν VC είναι µια συνάρτηση που απεικονίζει κάθε γεγονός της α σε ένα διάνυσµα στο χώρο R k µε τρόπο που να εκφράζει τη Σχέση Συµβαίνει πριν (και την ταυτόχρονη εκτέλεση γεγονότων), τότε k n. Αϖόδειξη: Έστω i οποιοσδήποτε ακέραιος, 0 i n-1. Από το Λήµµα 1 a i+1 b i. Αφού το VC εκφράζει παραλληλία τα VC(a i+1 ) και VC(b j ) είναι µη-συγκρίσιµα υπάρχει r τ.ω. VC[r](b i ) < VC[r](a i+1 ). Έστω f(i) ένας τέτοιος ακέραιος. Με τον τρόπο αυτό ορίζεται συνάρτηση f: {0,..., n-1} -> {0,..., k-1}. Αποδεικνύουµε ότι k n, αποδεικνύοντας ότι η f είναι 1-1. Ας υποθέσουµε (δια της µεθόδου της εις άτοπο απαγωγής) το αντίθετο. Τότε, δείκτες i και j, i j, τ.ω. f(i) = f(j). Έστω r = f(i) = f(j). Εξ ορισµού της f, VC[f(i)](b i ) < VC[f(i)](a i+1 ) και VC[f(j)](b j ) < VC[f(j)](a j+1 ) VC[r](b i ) < VC[r](a i+1 ) και VC[r](b j ) < VC[r](a j+1 ) Από Λήµµα 2, a i+1 b j VC(a i+1 ) < VC(b j ). Από όλα τα παραπάνω έχω: VC[r](b i ) < VC[r](a i+1 ) VC[r](b j ) < VC[r](α j+1 ). Άτοπο (αντιτίθεται στο Λήµµα 2)! Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 16

Συστήµατα ιαµοιραζόµενης Μνήµης εδοµένων δύο γεγονότων e 1 και e 2 µιας εκτέλεσης α, το e 1 Συµβαίνει-πριν το e 2, το οποίο συµβολίζεται e 1 e 2, αν ισχύει µια από τις ακόλουθες συνθήκες: 1. τα e 1 και e 2 είναι γεγονότα του ίδιου επεξεργαστή και το e 1 εκτελείται πριν από το e 2 στην α, 2. τα e 1 και e 2 είναι αλληλεπιδρώτα γεγονότα (δηλαδή και τα δύο προσβαίνουν την ίδια µεταβλητή και το ένα εκ των δύο επιτελεί write σε αυτή) και το e 1 προηγείται του e 2 στην α, 3. υπάρχει ένα γεγονός e τ.ω. e 1 e και e e 2. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 17

Παραδείγµατα Χρησιµότητας της Αιτιότητας Συνεϖείς Τοµές (consistent cuts) Σε ένα κατανεµηµένο σύστηµα δεν υπάρχει «παρατηρητής» που να γνωρίζει την κατάσταση όλων των διεργασιών (omniscient observer) έτσι ώστε να µπορεί να καταγράφει συνεπή στιγµιότυπα του συστήµατος. Αυτό θα ήταν ωστόσο επιθυµητό π.χ., για τους ακόλουθους λόγους: o επαναφορά του συστήµατος µετά από κατάρρευση o ανίχνευση αδιεξόδων o ανίχνευση τερµατισµού, κλπ. Υποθέτουµε ότι σε οποιοδήποτε γεγονός, κάθε διεργασία λαµβάνει το πολύ ένα µήνυµα. οθέντος µιας εκτέλεσης α, αριθµούµε τα βήµατα κάθε διεργασίας µε τους ακεραίους 1,2,3,.... Η τοµή µιας εκτέλεσης είναι ένα διάνυσµα k = <k 1,..., k n-1 > n θετικών ακεραίων. εδοµένης µιας τοµής k µιας εκτέλεσης, είναι δυνατό να κατασκευαστεί ένα σύνολο από καταστάσεις µια για κάθε διεργασία τ.ω. η κατάσταση της διεργασίας p j είναι η κατάσταση της p j αµέσως µετά την εκτέλεση του k j -οστού βήµατός της στην α. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 18

Παραδείγµατα Χρησιµότητας της Αιτιότητας Συνεϖείς Τοµές Εύρεση της µέγιστης συνεϖούς τοµής οθέντος µιας τοµής k της εκτέλεσης, ζητείται να βρεθεί η πιο πρόσφατη συνεϖής τοµή που προηγείται της k (ή τουλάχιστον δεν έπεται αυτής). Εύρεση Κατανεµηµένων Στιγµιοτύϖων Αντί να δίνεται µια τοµή, οι διεργασίες λαµβάνουν κάποια ένδειξη έναρξης υπολογισµού µιας συνεπούς τοµής. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 19

Μοντελοϖοίηση Φυσικών Ρολογιών Υποθέτουµε ότι υπάρχει ένας µηχανισµός, που ονοµάζεται ρολόι υλικού (hardware clock), ο οποίος παρέχει κάποιου είδους χρονισµό στις διεργασίες. Πιο φορµαλιστικά: Σε µια χρονισµένη εκτέλεση, έχει συσχετισθεί µια κάθε διεργασία p i, µια γνήσια αύξουσα συνάρτηση HC i µε πεδίο ορισµού και πεδίο τιµών το σύνολο των µηαρνητικών πραγµατικών αριθµών. Αν η p i εκτελέσει ένα βήµα τη χρονική στιγµή t (πραγµατικός χρόνος), η τιµή HC i (t) είναι διαθέσιµη ως είσοδος στη συνάρτηση µετάβασης της p i. Ωστόσο, η συνάρτηση µετάβασης της p i δεν µπορεί να αλλάξει την HC i. Υποθέτουµε ότι HC i (t) = t + c i, όπου c i είναι µια σταθερά. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 20

Μοντελοϖοίηση Φυσικών Ρολογιών Μπορούµε να διασπάσουµε µια εκτέλεση σε n υποακολουθίες, όπου κάθε υποακολουθία αναπαραστά την «όψη εκτέλεσης» µιας διεργασίας (δηλαδή εκείνα τα γεγονότα της εκτελέσης που έχουν εκτελεστεί από τη διεργασία). Ορισµός 1 Μια όψη εκτέλεσης µε τιµές ρολογιού µιας διεργασίας p i αποτελείται από µια αρχική κατάσταση για την p i, µια ακολουθία από γεγονότα που εκτελούνται από την p i, και µια τιµή του ρολογιού υλικού για κάθε τέτοιο γεγονός. Οι τιµές του ρολογιού υλικού πρέπει να είναι γνήσια αύξουσες, και αν µια ακολουθία γεγονότων είναι µη-πεπερασµένη, οι τιµές αυτές θα πρέπει να αυξάνονται χωρίς πάνω όριο. Ορισµός 2 Μια χρονισµένη όψη εκτέλεσης µε τιµές ρολογιού µιας διεργασίας p i είναι µια όψη εκτέλεσης µε τιµές ρολογιού της p i µε κάθε γεγονός της οποίας έχει συσχετισθεί και ο πραγµατικός χρόνος στον οποίο συνέβει το γεγονός. Η συσχέτιση αυτή πρέπει να είναι συνεπής µε τις τιµές του ρολογιού υλικού έχοντας τη µορφή HC i (t) = t + c i. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 21

Χρονισµένες Εκτελέσεις οθέντος µιας χρονισµένης εκτέλεσης µε τιµές ρολογιού α, είναι δυνατό να κατασκευαστεί για κάθε διεργασία p i, µια χρονισµένη όψη µε τιµές ρολογιού, η οποία θα συµβολίζεται α i. Ένα σύνολο από n χρονισµένες όψεις µε τιµές ρολογιού {η 0,..., η n-1 }, µια για κάθε διεργασία p i, µπορούν να συγχωνευτούν ως ακολούθως: o Η αρχική κατάσταση προκύπτει µε συνδυασµό των αρχικών καταστάσεων όλων των χρονισµένων όψεων. Η ακολουθία γεγονότων προκύπτει µε πολύπλεξη (interleaving) των γεγονότων των χρονισµένων όψεων µε τέτοιο τρόπο ώστε αυτή να σέβεται τον πραγµατικό χρόνο εκτέλεσης του κάθε γεγονότος. o Οι συγκρούσεις επιλύονται µε διάταξη των γεγονότων deliver κάθε χρονικής στιγµής t πριν από τα υπολογιστικά γεγονότα της t. Άλλες επιπρόσθετες συγκρούσεις επιλύονται βάσει των δεικτών των διεργασιών. Το αποτέλεσµα συµβολίζεται µε merge(η 0,..., η n-1 ). H merge(η 0,..., η n-1 ) είναι έγκυρη εκτέλεση αν οι χρονισµένες όψεις είναι συνεπείς: αν ένα µήνυµα της p j παραλαµβάνεται από την p i τη χρονική στιγµή t στην η i, αλλά η p j δεν το έχει στείλει µέχρι την t στην η j, η merge(η 0,..., η n-1 ) δεν είναι έγκυρη εκτέλεση. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 22

Μετακινώντας στο χρόνο την εκτέλεση µιας διεργασίας Ορισµός: Έστω ότι α είναι µια χρονισµένη εκτέλεση µε τιµές ρολογιών υλικού και έστω ότι x είναι ένα διάνυσµα n πραγµατικών αριθµών. Ορίζουµε τη shift(α, x) να είναι η εκτέλεση merge(η 0,..., η n-1 ), όπου ηi είναι η χρονισµένη όψη προκύπτει αν προσθέσουµε την τιµή xi στον πραγµατικό χρόνο που αντιστοιχεί σε κάθε γεγονός της α i. Το αποτέλεσµα της µετακίνησης µιας εκτέλεσης στο χρόνο δεν είναι απαραίτητα έγκυρη εκτέλεση (αφού στην εκτέλεση που προκύπτει από τη µετακίνηση θα µπορούσε κάποιο µήνυµα να παραλαµβάνεται πριν αποσταλεί). Λήµµα: Έστω ότι α είναι µια χρονισµένη εκτέλεση µε τιµές ρολογιών υλικού HC i, και έστω ότι x είναι ένα διάνυσµα n πραγµατικών αριθµών. Στη shift(α,x): 1. το ρολόι υλικού της p i είναι HC i = HC i x i, 2. κάθε µήνυµα από την p i στην p j έχει καθυστέρηση δ x i + x j, όπου δ είναι η καθυστέρηση του µηνύµατος στην α. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 23

Το Πρόβληµα Συγχρονισµού Ρολογιών Οι διεργασίες θα πρέπει να επικοινωνήσουν προκειµένου να συγχρονίσουν τα ρολόγια τους. Κάθε διεργασία p i χειρίζεται µια µεταβλητή adj i. Το προσαρµοσµένο ρολόι της διεργασίας p i ορίζεται να είναι AC i (t) = HC i (t) + adj i (t). Ορισµός (εϖίτευξη ε-συγρονισµού ρολογιών): Σε µια επιτρεπτή χρονισµένη εκτέλεση, θα πρέπει να υπάρχει ένας πραγµατικός αριθµός t f τ.ω. ο αλγόριθµος έχει τερµατίσει µέχρι την χρονική στιγµή t f και για όλες τις διεργασίες p i και p j και όλες τις χρονικές στιγµές t t f, AC i (t) AC j (t) ε. To ε ονοµάζεται αϖόκλιση (skew). Υϖοθέσεις Υπάρχουν µη αρνητικοί ακέραιοι (σταθερές) d και u, d u, τ.ω. σε κάθε επιτρεπτή χρονισµένη εκτέλεση, η καθυστέρηση κάθε µηνύµατος βρίσκεται στο διάστηµα [d-u, d]. Το u εκφράζει την αβεβαιότητα στην καθυστέρηση του µηνύµατος. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 24

Το Πρόβληµα Συγχρονισµού Ρολογιών Η αϖλή ϖερίϖτωση 2 διεργασιών Αϖλός Αλγόριθµος Η διεργασία p 0 θέτει την adj 0 στην τιµή 0 και στέλνει την τρέχουσα τιµή του ρολογιού υλικού της στη διεργασία p 1. Όταν η p 1 λάβει Τ από την p 0, θέτει την adj 1 = Τ + (d-u) HC 1. (έτσι AC 1 =T+(d-u)) Στην καλύτερη περίπτωση: skew = 0. Στη χειρότερη περίπτωση: skew = u. Τι θα συµβεί αν η adj 1 ϖάρει τιµή Τ + d HC 1 ; Το καλύτερο είναι η καθυστέρηση να εκτιµηθεί σε d u/2. Ποια είναι η αϖόδοση του αλγορίθµου στην καλύτερη και στη χειρότερη ϖερίϖτωση τότε; Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 25

Το Πρόβληµα Συγχρονισµού Ρολογιών Η αϖλή ϖερίϖτωση 2 διεργασιών Λήµµα: Η καλύτερη απόκλιση που µπορεί να επιτευχθεί στη χειρότερη περίπτωση από έναν αλγόριθµο συγχρονισµού ρολογιών Α για 2 διεργασίες p 0 και p 1 είναι u/2. Αϖόδειξη: Έστω ότι α είναι µια εκτέλεση του α στην οποία η καθυστέρηση των µηνυµάτων από την p 0 στην p 1 είναι d-u ενώ από την p 1 στην p 0 είναι d. Έστω ότι AC 0 και AC 1 είναι οι τιµές των προσαρµοσµένων ρολογιών των διεργασιών κάποια χρονική στιγµή T µετά τον τερµατισµό. Εφόσον ο Α έχει απόκλιση ε, AC 0 AC 1 ε. Έστω ότι α = shift(α, <-u, 0>). Η α είναι έγκυρη εκτέλεση αφού όλες οι καθυστερήσεις µηνυµάτων είναι µεταξύ d-u και d. Τη χρονική στιγµή T, στην α, το προσαρµοσµένο ρολόι της p0 έχει τιµή AC 0 + u, ενώ το προσαρµοσµένο ρολόι της p1 είναι AC 1. Αφού η απόκλιση του αλγορίθµου είναι ε, AC 1 (AC 0 + u) ε. Άρα, AC 0 AC 0 + u 2ε ε u/2. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 26

Ένα Άνω Φράγµα Ένας Αϖλός Αλγόριθµος για n ιεργασίες Επιλογή µιας διεργασίας ως κεντρικής. Εφαρµογή του αλγορίθµου για 2 διεργασίες µεταξύ οποιασδήποτε διεργασίας και της κεντρικής. Ποια είναι η αϖόκλιση αυτού του αλγορίθµου; Υπάρχει ένας ελαφρώς καλύτερος αλγόριθµος! Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 27

Ένα Άνω Φράγµα Θεώρηµα: Ο παραπάνω αλγόριθµος συγχρονισµού ρολογιών επιτυγχάνει απόκλιση u(1 1/n) για n διεργασίες. Αϖόδειξη: Έστω α µια οποιαδήποτε εκτέλεση του αλγορίθµου. Αφότου η p i λάβει τιµή Τ από την p j, η diff i [j] αποθηκεύει την εκτίµηση της p i για τη διαφορά των HC j και HC i. Εξαιτίας του τρόπου υπολογισµού του diff i [j], το σφάλµα στην εκτίµηση είναι το πολύ +u/2 ή u/2. Άρα ισχύει ότι: Λήµµα: Για κάθε χρονική στιγµή t που έπεται της χρονικής στιγµής στην οποία η pi θέτει την diff i [j], j i, ισχύει ότι diff i [j] = HC j (t) HC i (t) + err ji, όπου err ji είναι µια σταθερά µε u/2 err ji u/2. Από τον ορισµό των προσαρµοσµένων ρολογιών, για κάθε χρονική στιγµή t µετά τον τερµατισµό του αλγορίθµου: ACi(t) ACj(t) = HC i (t) + 1/n Σ k=0 n-1 diff i [k] HC j (t) 1/n Σ k=0 n-1 diff j [k] (1) Μετά από αλγεβρικούς υπολογισµούς, έχουµε: 1/n HC i (t) HC j (t) + diff i [i] diff j [i] + HC i (t) HC j (t) + diff i [j] diff j [j] + Σ k=0,k i,j n-1 (HC i (t) HC j (t) + diff i [k] diff j [k]) Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 28

Ένα Άνω Φράγµα Αϖόδειξη (συνέχεια) Από ιδιότητες της απόλυτης τιµής και επειδή diffi[i] = diffj[j] = 0: (1) 1/n( HC j (t) - HC i (t) + diff j [i] (*) + HC i (t) HC j (t) + diff i [j] (~) + Σ k=0,k i,j n-1 HC i (t) HC j (t) + diff i [k] diff j [k] (#) ) (*) -> διαφορά µεταξύ της γνώσης της p i για το δικό της ρολόι και της εκτίµησης της p j για το ρολόι της p i = err ij u/2 (~) -> διαφορά µεταξύ της γνώσης της pj για το δικό της ρολόι και της εκτίµησης της p i για το ρολόι της p j = err ji u/2 (#) -> διαφορά µεταξύ της εκτίµησης της p i για το ρολόι της p k και της εκτίµησης της p j για το ρολόι της p k : HC i (t) HC j (t) + HCk(t) HC i (t) +err ki HCk(t) + HC j (t) -err kj u. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 29

η συνολική έκφραση είναι 1/n(u/2 + u/2 + (n-2) u) = 1/n(n-1)u = (1 1/n)u, όπως απαιτείται! Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 30

Ένα Κάτω Φράγµα Θεώρηµα: Για κάθε αλγόριθµο συγχρονισµού ρολογιών για n διεργασίες που επιτυγχάνει απόκλιση ε, το ε είναι τουλάχιστον u(1 1/n). Αϖόδειξη: Έστω Α ένας οποιοσδήποτε αλγόριθµος ε-συγχρονισµού ρολογιών. Έστω α µια χρονισµένη εκτέλεση του Α µε τιµές ρολογιού HC i τ.ω. για όλες τις διεργασίες p i και p j, i < j: o η καθυστέρηση οποιουδήποτε µηνύµατος από την p i στην p j είναι ακριβώς d-u, ενώ o η καθυστέρηση οποιουδήποτε µηνύµατος από την p j στην p i είναι ακριβώς d. Έστω AC i η τιµή του προσαρµοσµένου ρολογιού της p i µετά τον τερµατισµό. Λήµµα: Για κάθε k, 1 k n-1, AC k-1 (t) AC k (t) u + ε. Αϖόδειξη: Έστω k οποιαδήποτε τιµή, 1 k n-1. Ορίζουµε την a = shift(α, x), όπου x i = -u αν 0 i k-1 και x i = 0 αν k i n-1. Έστω ότι p i και p j είναι δύο διεργασίες µε i < j. Αν j k-1 ή k i, τότε τα µηνύµατα από την p i στην p j φθάνουν µε καθυστέρηση d-u ενώ εκείνα από την p j στην p i φθάνουν µε καθυστέρηση d. ιαφορετικά, η καθυστέρηση µηνυµάτων από την p i στην p j = d και από την p j στην p i = d-u. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 31

Ένα Κάτω Φράγµα Αϖόδειξη Λήµµατος (συνέχεια): Εποµένως, η α είναι έγκυρη και έτσι ο Α πρέπει να επιτυγχάνει ε-συγχρονισµό των ρολογιών. Αφού οι εκτελέσεις των διεργασιών µετακινούνται νωρίτερα σε πραγµατικό χρόνο, η t είναι χρονική στιγµή που έπεται του τερµατισµού στην α AC k-1 (t) AC k (t) + ε. Έχουµε AC k-1 (t) = AC k-1 (t) + u και AC k (t) = AC k (t). Από τα παραπάνω προκύπτει ότι: AC k-1 (t) AC k (t) u + ε. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 32

Ένα Κάτω Φράγµα Αϖόδειξη Θεωρήµατος (συνέχεια): Αφού ο Α υποτίθεται πως επιτυγχάνει ε-συγχρονισµό, ισχύει ότι AC n-1 (t) AC 0 (t). Εφαρµόζουµε επαναληπτικά το Λήµµα: AC n-1 (t) AC 0 (t) + ε AC 1 (t) u + ε + ε = AC 1 (t) u + 2ε AC 2 (t) u + ε u + 2ε = AC 2 (t) 2u + 3ε...... AC n-1 (t) (n-1)u + nε (n-1)u nε ε (1 1/n)u, όπως απαιτείται! Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 33