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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ομαδική Επικοινωνία (Group Communication) Κατανεμημένα Συστήματα 1

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

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

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

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

Ανοχή βλαβών με καταγραφή κατάστασης και οπισθοδρόμηση (checkpoints & rollback) Κατανεμημένα Συστήματα 1

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

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

Ρολόγια και Συγχρονισμός

Κατανεμημένη συμφωνία (distributed consensus) Κατανεμημένα Συστήματα 1

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1

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

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

Λύσεις Σειράς Ασκήσεων 5

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

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

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

Υπολογιστικά & Διακριτά Μαθηματικά

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

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1

Ορθότητα λειτουργίας τμημάτων λογισμικού & δομών δεδομένων υπό ταυτόχρονη εκτέλεση

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

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

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

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

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

Δομές ελέγχου ροής προγράμματος

Ρολόγια και Συγχρονισμός

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

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

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

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


Κεφάλαιο 5 Αξιωματική Σημασιολογία και Απόδειξη Ορθότητας Προγραμμάτων

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

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

Σειρά Προβλημάτων 3 Ημερομηνία Παράδοσης: 04/04/16

Ορθότητα λειτουργίας τμημάτων λογισμικού & δομών δεδομένων υπό ταυτόχρονη εκτέλεση

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

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

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

Ανάλυση της Ορθότητας Προγραμμάτων

Ανάλυση της Ορθότητας Προγραμμάτων

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

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

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

Ταξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4)

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

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

Πολλοί τρόποι περιγραφής αλγορίθμων. Όλοι είναι μηχανιστικά ισοδύναμοι και ειδικά ισοδύναμοι με μερικές αναδρομικές συναρτήσεις.

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

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

Σειρά Προβλημάτων 4 Λύσεις

Τομές Γραφήματος. Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών. Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

Συστηματικός έλεγχος ορθότητας ταυτόχρονων προγραμμάτων μέσω γράφου καταστάσεων

β) 3 n < n!, n > 6 i i! = (n + 1)! 1, n 1 i=1

Συστηματικός έλεγχος ορθότητας ταυτόχρονων προγραμμάτων μέσω γράφου καταστάσεων

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

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

ψ φ2 = k χ φ2 = 4k χ φ1 = χ φ1 + χ φ2 + 3 = 4(k 1 + k 2 + 1) + 1 ψ φ1 = ψ φ1 + χ φ2 = k k = (k 1 + k 2 + 1) + 1

ΠΑΡΑΡΤΗΜΑ IV. ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΡΑΡΤΗΜΑ IV Ασκήσεις για το Robolab

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

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

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

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΞΕΤΑΣΗ ΣΤΟ ΜΑΘΗΜΑ «ΔΙΑΚΡΙΤΑ ΜΑΘΗΜΑΤΙΚΑ» - 6/2/2014 Διάρκεια Εξέτασης: 2 ώρες και 50 λεπτά Ομάδα Α

Αυτοματοποιημένη Επαλήθευση

Θέματα Προγραμματισμού Η/Υ

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

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

Σειρά Προβλημάτων 5 Λύσεις

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

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα

Αριθμήσιμα σύνολα. Μαθηματικά Πληροφορικής 5ο Μάθημα. Παραδείγματα αριθμήσιμων συνόλων. Οι ρητοί αριθμοί

Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές

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

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις

Φροντιστήριο 10 Λύσεις

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

Θέματα Μεταγλωττιστών

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 3/2/ / 37

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38

Λύσεις Σειράς Ασκήσεων 5

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

Transcript:

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

Λογικά συνεπείς τομές Τμήμα τοπικής ιστορίας: h i.k {e i.1,e i.2,e i.k } τμήμα της τοπικής εκτέλεσης στην διεργασία P i που συμπεριλαμβάνει μέχρι και το k-οστό γεγονός Τομή: C h 1.k1 h 2.k2 h N.kN ένωση τμημάτων ιστορίας όλων των διεργασιών Λογικά συνεπής τομή: e C, e' e e' C μια συνεπής τομή δεν περιέχει ένα γεγονός χωρίς να περιέχει όλα τα λογικά προηγούμενο του Η έννοια της συνεπούς τομής είναι η «κατανεμημένη επέκταση» της έννοιας του τμήματος τοπικής ιστορίας Κατανεμημένα Συστήματα 2 lalis@inf.uth.gr

P1 e 1.1 e 1.2 e 1.3 e 1.4 P2 e 2.3 m2 e 2.1 e 2.2 m3 P3 e 3.1 e 3.2 e C 3.3 C' τομή C είναι συνεπής τομή C' δεν είναι συνεπής Κατανεμημένα Συστήματα 3 lalis@inf.uth.gr

Συνεπείς τομές και καθολικές καταστάσεις Κάθε τομή C ορίζει / αντιστοιχεί σε μια καθολική κατάσταση S=state(C) του συστήματος η S αποτελείται από τις τοπικές καταστάσεις των διεργασιών μετά από εκτέλεση των γεγονότων που ανήκουν στην τομή C Κάθε συνεπής τομή αντιστοιχεί σε μια συνεπή καθολική κατάσταση: C συνεπής state(c) συνεπής Μια συνεπής κατάσταση αντιστοιχεί σε μια πιθανή πραγματική κατάσταση του συστήματος μπορούμε να υποθέσουμε ότι η κατάσταση όντως ισχύει, χωρίς να αντιφάσκουμε με την λογική σχέση των γεγονότων Αντίστροφα, μια μη-συνεπής κατάσταση σίγουρα δεν υπήρξε αληθής στην πραγματική εκτέλεση αντιφάσκει με την λογική σχέση των γεγονότων Κατανεμημένα Συστήματα 4 lalis@inf.uth.gr

Λογικά συνεπείς εκτελέσεις Εκτέλεση: μια «συνεχής» ακολουθία τομών C 0, C 1, C 2,, όπου C k+1 C k e Κάθε εκτέλεση C 0, C 1, C 2, αντιστοιχεί σε μια ακολουθία S 0, S 1, S 2,, όπου S k =state(c k ) Συνεπής εκτέλεση: μια εκτέλεση C 0, C 1, C 2,, όπου κάθε C k (συνεπώς κάθε S k ) είναι συνεπής Για κάθε κατανεμημένη εκτέλεση υπάρχουν συνήθως πολλές λογικά συνεπείς εκτελέσεις αλλά μόνο μια αντιστοιχεί στην πραγματική εκτέλεση Κατανεμημένα Συστήματα 5 lalis@inf.uth.gr

Πλέγμα καθολικών συνεπών καταστάσεων Οι συνεπείς καταστάσεις μιας κατανεμημένης εκτέλεσης μπορεί να διαταχθούν σε ένα πλέγμα (γράφο) Η κατάσταση S=state(C) είναι στο επίπεδο level(s)=l αν η αντίστοιχη τομή C συμπεριλαμβάνει L γεγονότα Οι S=state(C) και S'=state(C'), με level(s)=level(s')+1, συνδέονται μεταξύ τους μέσω μιας ακμής αν C' C e Κάθε συνεπής εκτέλεση C 0, C 1, C 2, αντιστοιχεί σε μια διαδρομή κατά μήκος των ακμών του πλέγματος των συνεπών καθολικών καταστάσεων αρχίζοντας από το επίπεδο 0 και περνώντας μέσα από (μόνο) μια κατάσταση για κάθε επόμενο επίπεδο Κατανεμημένα Συστήματα 6 lalis@inf.uth.gr

P1 e 1.1 e 1.2 e 1.3 e 1.4 m1 m2 P2 e 2.1 e 2.2 e 2.3 Κατανεμημένα Συστήματα 7 lalis@inf.uth.gr

Level 0 S00 Level 1 S10 Level 2 Level 3 S30 S20 S21 πραγματική εκτέλεση Level 4 S31 S22 Level 5 Level 6 Level 7 S32 S43 S33 S23 Κατανεμημένα Συστήματα 8 lalis@inf.uth.gr

Παθητική κατασκευή συνεπών εκτελέσεων μέσω ειδοποιήσεων Βλέπε φυσικά/λογικά ρολόγια Κάθε γεγονός λαμβάνει μια χρονοσφραγίδα, και στέλνεται αντίστοιχη ειδοποίηση στον παρατηρητή Ο παρατηρητής λαμβάνει υπόψη του κάθε γεγονός για να σχηματίσει την «επόμενη» καθολική κατάσταση Αν ο παρατηρητής ακολουθήσει τους σωστούς κανόνες (με βάση τις χρονοσφραγίδες) τότε οι καταστάσεις που θα κατασκευάσει είναι εγγυημένα συνεπείς Η εκτέλεση που θα κατασκευάσει θα είναι συνεπής Κατανεμημένα Συστήματα 9 lalis@inf.uth.gr

Διανυσματικά ρολόγια P1 P2 1,0 2,0 3,0 4,3 e 1.1 e 1.2 e 1.3 e 1.4 m1 m2 e 2.1 e 2.2 e 2.3 2,1 2,2 2,3 S00 S10 S20,S30 S31 S32,S33 S43 στιγμές κατασκευής Κατανεμημένα Συστήματα 10 lalis@inf.uth.gr

Level 0 S00 Level 1 S10 Level 2 Level 3 S30 S20 S21 πραγματική εκτέλεση Level 4 S31 S22 Level 5 S32 S23 καταγεγραμμένη εκτέλεση Level 6 S33 t Level 7 S43 Κατανεμημένα Συστήματα 11 lalis@inf.uth.gr

Ρολόγια Lamport (υποθέτουμε FIFO) P1 P2 1 2 3 6 e 1.1 e 1.2 e 1.3 e 1.4 m1 m2 e 2.1 e 2.2 e 2.3 3 4 5 S00 S10 S20,S30,S31 S32 S33,S43 στιγμές κατασκευής Κατανεμημένα Συστήματα 12 lalis@inf.uth.gr

Level 0 S00 Level 1 Level 2 Level 3 S10 S20 S30 S21 πραγματική εκτέλεση Level 4 S31 S22 Level 5 S32 S23 καταγεγραμμένη εκτέλεση Level 6 S33 Level 7 S43 Κατανεμημένα Συστήματα 13 lalis@inf.uth.gr

Φυσικά ρολόγια (με T max = 5, συγχρονισμένο ρολόι και για τον εξωτερικό παρατηρητή) P1 P2 3 10 15 25 e 1.1 e 1.2 e 1.3 e 1.4 m1 m2 11 19 21 e 2.1 e 2.2 e 2.3 S00 S10 S20 S21 S31 S32 S33 S43 στιγμές κατασκευής Κατανεμημένα Συστήματα 14 lalis@inf.uth.gr

Level 0 S00 Level 1 S10 Level 2 Level 3 S30 S20 S21 πραγματική εκτέλεση Level 4 S31 S22 Level 5 S32 S23 καταγεγραμμένη εκτέλεση Level 6 S33 Level 7 S43 Κατανεμημένα Συστήματα 15 lalis@inf.uth.gr

Ενεργητική κατασκευή στιγμιότυπων Οι διεργασίες εκτελούνται χωρίς να ενημερώνουν τον παρατηρητή για τα τοπικά τους γεγονότα Ο ίδιος ο παρατηρητής αποφασίζει να κατασκευάσει μια κατάσταση/στιγμιότυπο της εκτέλεσης Ζητά τις διεργασίες να στείλουν την κατάσταση τους Συνθέτει τις καταστάσεις σε μια καθολική κατάσταση Απαιτείται ένα πρωτόκολλο που εγγυάται ότι η κατάσταση που θα κατασκευαστεί είναι συνεπής Υποθέτουμε επικοινωνία FIFO Κατανεμημένα Συστήματα 16 lalis@inf.uth.gr

Απλοϊκή προσπάθεια Ο παρατηρητής στέλνει μήνυμα record σε όλες τις διεργασίες, και περιμένει απάντηση Όταν μια διεργασία λαμβάνει το μήνυμα record, καταγράφει άμεσα την τοπική της κατάσταση, και την στέλνει πίσω στον παρατηρητή Ο παρατηρητής περιμένει να λάβει απάντηση από κάθε διεργασία, και κατασκευάζει μια καθολική κατάσταση με βάση τις τοπικές καταστάσεις που έλαβε Πρόβλημα: η κατάσταση που κατασκευάζεται δεν αντιστοιχεί απαραίτητα σε μια συνεπή τομή, άρα δεν είναι εγγυημένα συνεπής Κατανεμημένα Συστήματα 17 lalis@inf.uth.gr

locally recorded state C P1 P2 e 1.1 e 1.2 e 1.3 e 1.4 m1 e 2.1 e 2.2 e 2.3 m2 rec S11 Κατανεμημένα Συστήματα 18 lalis@inf.uth.gr

Level 0 S00 Level 1 S10 Level 2 Level 3 S30 S20 S11 S21 πραγματική εκτέλεση Level 4 S31 S22 Level 5 S32 S23 καταγεγραμμένη κατάσταση Level 6 S33 t Level 7 S43 Κατανεμημένα Συστήματα 19 lalis@inf.uth.gr

Ανασταλτικός αλγόριθμος δύο φάσεων Ο παρατηρητής στέλνει μήνυμα record σε όλες τις διεργασίες, και περιμένει απάντηση Όταν μια διεργασία λάβει το μήνυμα record, σταματά να στέλνει μηνύματα, καταγράφει την κατάσταση της, και την στέλνει στον παρατηρητή Όταν ο παρατηρητής λάβει τις καταγεγραμμένες καταστάσεις από όλες τις διεργασίες, στέλνει ένα μήνυμα continue σε όλες τις διεργασίες Όταν μια διεργασία λάβει το μήνυμα continue, συνεχίζει την αποστολή μηνυμάτων Μειονέκτημα: μπλοκάρισμα της επικοινωνίας (και πιθανώς της εκτέλεσης) των διεργασιών, μέχρι να ολοκληρωθεί η διαδικασία συλλογής Κατανεμημένα Συστήματα 20 lalis@inf.uth.gr

Ορθότητα Έστω πως η κατάσταση S i που κατέγραψε η P i δεν περιέχει το γεγονός send(m), ενώ η κατάσταση S j που κατέγραψε η P j περιέχει το γεγονός recv(m) Αφού η S i δεν περιέχει το send(m), τότε η P i έστειλε το m στην P j αφού κατέγραψε την κατάσταση της Για να συνεχίσει η P i την εκτέλεση της, και να στείλει το m, πρέπει προηγουμένως να έλαβε το continue Για να στείλει ο παρατηρητής continue πρέπει να έχει λάβει τις τοπικές καταστάσεις από όλες τις διεργασίες Τότε, η κατάσταση έλαβε ο παρατηρητής από την P j δεν μπορεί να περιέχει το γεγονός recv(m) Άτοπο! Κατανεμημένα Συστήματα 21 lalis@inf.uth.gr

Init: recording = false; On received(<rec>): if (!recording) { recording = true; S = recordstate(); send(observer,<state,myid,s>); } On received(<cont>): if (recording) { recording = false; } app-send(p,msg): while (recording) {} /* block */ send(p,msg); Init(procs): grp = procs; Sglob; record(): Sglob = {}; for-each p in grp { send(p,<rec>); } for-each p in grp { recv(<state,p,sloc>); Sglob = Sglob + Sloc; } for-each p in grp { send(p,<cont>); } Κατανεμημένα Συστήματα 22 lalis@inf.uth.gr

Κατασκευή με φυσικά ρολόγια Οι διεργασίες διαθέτουν συγχρονισμένα ρολόγια και υπάρχει άνω όριο μετάδοσης ενός μηνύματος Tmax Ο παρατηρητής στέλνει μήνυμα record<t> σε όλες τις διεργασίες, το αργότερο τη στιγμή t Tmax Την χρονική στιγμή t, κάθε διεργασία καταγράφει την τοπική της κατάσταση και τη στέλνει στον παρατηρητή Ο παρατηρητής κατασκευάζει την καθολική κατάσταση με βάση τις τοπικές καταστάσεις που λαμβάνει Η καθολική κατάσταση είναι εγγυημένα συνεπής Κατανεμημένα Συστήματα 23 lalis@inf.uth.gr

t P1 P2 e 1.1 e 1.2 e 1.3 e 1.4 m1 e 2.1 e 2.2 e 2.3 m2 rec<t> C S20 Κατανεμημένα Συστήματα 24 lalis@inf.uth.gr

Level 0 S00 Level 1 S10 Level 2 Level 3 S30 S20 S21 πραγματική εκτέλεση Level 4 S31 S22 Level 5 S32 S23 καταγεγραμμένη κατάσταση Level 6 S33 t Level 7 S43 Κατανεμημένα Συστήματα 25 lalis@inf.uth.gr

Παρατήρηση Η προηγούμενη μέθοδος υποθέτει ότι τα ρολόγια είναι κατάλληλα συγχρονισμένα (με «αρκετή» ακρίβεια) Διαφορετικά: Η P j μπορεί να καταγράψει στην κατάσταση της S j την παραλαβή ενός μηνύματος m που έστειλε η P i αφού κατέγραψε τη δική της κατάσταση S i Η καθολική κατάσταση που θα κατασκευαστεί είναι ασυνεπής Κατανεμημένα Συστήματα 26 lalis@inf.uth.gr

t P1 P2 e 1.1 e 1.2 e 1.3 e 1.4 m1 t m2 e e 2.2 e 2.3 2.1 rec<t> C S11 Κατανεμημένα Συστήματα 27 lalis@inf.uth.gr

Level 0 S00 Level 1 S10 Level 2 Level 3 S30 S20 S11 S21 πραγματική εκτέλεση Level 4 S31 S22 Level 5 S32 S23 καταγεγραμμένη κατάσταση Level 6 S33 t Level 7 S43 Κατανεμημένα Συστήματα 28 lalis@inf.uth.gr

Ανοχή για μεγάλη διαφορά συγχρονισμού Ο παρατηρητής στέλνει μήνυμα record<t> Την στιγμή t, κάθε διεργασία καταγράφει την τοπική της κατάσταση, και την στέλνει στον παρατηρητή Επιπλέον: Αφού μια διεργασία καταγράψει την κατάσταση της, στέλνει μήνυμα record σε όλες τις διεργασίες Όταν μια διεργασία λάβει το πρώτο μήνυμα record, (α) αν έχει ήδη καταγράψει την κατάσταση της απλά το αγνοεί, (β) διαφορετικά (άσχετα με την τιμή του ρολογιού της), καταγράφει την κατάσταση της, την στέλνει στον παρατηρητή, και με την σειρά της στέλνει μήνυμα record σε όλες τις διεργασίες Κατανεμημένα Συστήματα 29 lalis@inf.uth.gr

t P1 e 1.1 e 1.2 e 1.3 e 1.4 m1 t m2 P2 rec rec e 2.2 e 2.3 e 2.1 rec<t> C S10 Κατανεμημένα Συστήματα 30 lalis@inf.uth.gr

Level 0 S00 Level 1 S10 Level 2 Level 3 S30 S20 S21 πραγματική εκτέλεση Level 4 S31 S22 Level 5 S32 S23 καταγεγραμμένη κατάσταση Level 6 S33 t Level 7 S43 Κατανεμημένα Συστήματα 31 lalis@inf.uth.gr

Ορθότητα: συνέπεια Έστω ότι η κατάσταση S=state(C) που καταγράφεται είναι ασυνεπής, δηλαδή η τομή C είναι ασυνεπής $ e,e': e' C e e' e C Αφού τα τοπικά γεγονότα καταγράφονται με συνέπεια, η μόνη περίπτωση ασυνέπειας είναι να ισχύει $ e i.x =send(m),e j.y =recv(m): e j.y C e i.x C Για να μην έχει καταγραφεί το e i.x, η P i έστειλε το μήνυμα record στην P j προτού στείλει το m Τότε, λόγω FIFO, το μήνυμα record θα είχε φτάσει στην P j πριν το m, άρα η P j δεν θα είχε καταγράψει στη τοπική της κατάσταση το γεγονός e j.y : άτοπο! Κατανεμημένα Συστήματα 32 lalis@inf.uth.gr

Ορθότητα: τερματισμός Κάθε διεργασία θα λάβει κάποια στιγμή για πρώτη φορά το μήνυμα record (ίσως όχι από τον παρατηρητή) Τελικά, κάθε διεργασία θα καταγράψει την τοπική της κατάσταση, και θα στείλει μήνυμα record στις άλλες Τελικά, κάθε διεργασία θα λάβει ένα μήνυμα record από κάθε άλλη διεργασία, οπότε και θα ολοκληρώσει την διαδικασία καταγραφής Κατανεμημένα Συστήματα 33 lalis@inf.uth.gr

Ο χρόνος δεν παίζει (πλέον) κανένα ρόλο Ο χρόνος έναρξης που περιέχει το μήνυμα record που στέλνει ο παρατηρητής είναι «βοηθητικός» Από τη στιγμή που η πρώτη διεργασία P i καταγράψει την κατάσταση της, «προκαλεί» την καταγραφή της κατάστασης σε όλες τις υπόλοιπες διεργασίες P j Οι υπόλοιπες διεργασίες P j θα καταγράψουν και αυτές την κατάσταση τους, ακόμα και αν το ρολόι τους είναι αργό σε σχέση με το ρολόι της P i, ανεξάρτητα από την ώρα καταγραφής που πρότεινε ο παρατηρητής Η αναφορά στον πραγματικό χρόνο είναι περιττή Αρκεί κάποια διεργασία να αρχίσει την καταγραφή με το που λάβει το μήνυμα του παρατηρητή Κατανεμημένα Συστήματα 34 lalis@inf.uth.gr

Init(procs): grp = procs; recording = false; cnt; On received(<rec,p>): if (!recording) { recording = true; S = recordstate(); send(observer,<state,myid,s>); for-each p' in grp-{myid}: send(p',<rec,myid>); cnt = 0; } cnt++; if (cnt == grp ) { recording = false; } Κατανεμημένα Συστήματα 35 lalis@inf.uth.gr

Αλγόριθμος κατανεμημένου στιγμιότυπου (Chandy & Lamport) Όταν μια διεργασία λάβει το μήνυμα record για πρώτη φορά, καταγράφει την κατάσταση της, στέλνει η ίδια ένα μήνυμα record σε όλες τις διεργασίες, και αρχίζει να καταγράφει τα μηνύματα που λαμβάνει από τις διεργασίες από τις οποίες δεν έχει λάβει ακόμα record Όταν μια διεργασία λάβει record και από τη τελευταία διεργασία, στέλνει την καταγεγραμμένη κατάσταση και τα καταγεγραμμένα μηνύματα στον παρατηρητή Ο παρατηρητής κατασκευάζει μια συνεπή καθολική κατάσταση και βλέπει να τα μηνύματα που βρίσκονταν «καθοδόν» κατά την διαδικασία καταγραφής Κατανεμημένα Συστήματα 36 lalis@inf.uth.gr

Init(procs): grp = procs; recording = false; S; cnt; msgs[]; recmsgs[]; On received(<rec,p>): if (!recording) { recording = true; S = recordstate(); for-each p' in grp-{myid}: send(p',<rec,myid>); cnt = 0; msgs[] = {{},{},,{}}; recmsgs[] = {true,true,,true}; } cnt++; recmsgs[p] = false; if (cnt = grp ) { recording = false; send(observer,<state,myid,s,msgs[]>); } On received(p,<appmsg,m>): if (recmsgs[p]) { msgs[p] = msgs[p] + {<m>}; /* record message */ } app-received(p,<m>); /* forward to application */ Κατανεμημένα Συστήματα 37 lalis@inf.uth.gr

P1 e 1.1 e 1.2 e 1.3 e 1.4 m1 m2 P2 e 2.1 e 2.2 e 2.3 rec S20+{m1} Κατανεμημένα Συστήματα 38 lalis@inf.uth.gr

Σχέση καταγεγραμμένης κατάστασης και πραγματικής εκτέλεσης Η καθολική κατάσταση S που κατασκευάζεται δεν αντιστοιχεί απαραίτητα σε μια κατάσταση από την οποία πραγματικά πέρασε το σύστημα Υπάρχει όμως σχέση ανάμεσα στην S και (α) την πραγματική κατάσταση S beg την στιγμή που άρχισε η καταγραφή (η κατασκευή) της S, και (β) την πραγματική κατάσταση S end την στιγμή που τελείωσε η καταγραφή (η κατασκευή) της S Η κατάσταση S είναι μια λογικά πιθανή ενδιάμεση κατάσταση ανάμεσα στις καταστάσεις S beg και S end, δηλαδή υπάρχει συνεπής εκτέλεση που αρχίζει από την S beg, περνάει από την S και καταλήγει στην S end Κατανεμημένα Συστήματα 39 lalis@inf.uth.gr

συνεπείς εκτελέσεις e 0,e 1,e 2, πραγματική εκτέλεση S beg S end e 0 ',e 1 ', e s-1 ' S e s ',e s+1 ', Κατανεμημένα Συστήματα 40 lalis@inf.uth.gr

Ορολογία και παρατηρήσεις S η κατασκευασμένη συνεπής καθολική κατάσταση pre-snap(e): e έλαβε χώρα προτού καταγραφεί η S post-snap(e): e έλαβε χώρα αφού καταγράφηκε η S Έστω Sys η πραγματική εκτέλεση που οδηγεί από την κατάσταση S beg στην κατάσταση S end Αν η S δεν αντιστοιχεί στην πραγματική εκτέλεση $e,e' Sys : pre-snap(e) post-snap(e') e' e S είναι συνεπής e' e e' e e' e e e' Κατανεμημένα Συστήματα 41 lalis@inf.uth.gr

Διαδικασία κατασκευής Βρίσκουμε e,e' Sys : pre-snap(e) post-snap(e') e' e Αφού e e', μπορούμε να φτιάξουμε μια «λογικά ισοδύναμη» εκτέλεση, αντιμεταθέτοντας τα e και e' Καθώς η αντιμετάθεση αφορά λογικά ανεξάρτητα γεγονότα της εκτέλεσης που βρίσκονται μετά την S beg και πριν την S end, η νέα «λογικά ισοδύναμη» εκτέλεση πάλι περνάει από την S beg και οδηγεί στην S end Επαναλαμβάνουμε την διαδικασία μέχρι να φτιάξουμε την λογικά ισοδύναμη εκτέλεση Sys' SysA,SysB, έτσι ώστε e SysA: pre-snap(e) e SysB: post-snap(e) Κατανεμημένα Συστήματα 42 lalis@inf.uth.gr

Sbeg Send P1 e 1.1 e 1.2 e 1.3 e 1.4 m1 m2 S00 P2 rec e 2.1 Sbeg e 2.2 e 2.3 Send Sys e 1.1, e 1.2, e 2.1, e 1.3, e 2.2, e 2.3, e 1.4 pre pre pre post pre post post Sys' e 1.1, e 1.2, e 2.1, e 2.2, e 1.3, e 2.3, e 1.4 S22 pre pre pre pre post post post S10 S20 Sbeg S30 S21 S31 S22 S S32 S23 Send S33 S43 Κατανεμημένα Συστήματα 43 lalis@inf.uth.gr

Αποτίμηση κατηγορημάτων Κατανεμημένα Συστήματα 44 lalis@inf.uth.gr

Αποτίμηση κατηγορημάτων Κατηγόρημα: συνάρτηση που απεικονίζει μια κατάσταση (καταγεγραμμένες τιμές των τοπικών μεταβλητών των διεργασιών) σε true ή false Σταθερό κατηγόρημα: ένα κατηγόρημα που αν ισχύσει τότε θα εξακολουθεί να ισχύει (μόνιμα) για όλη την υπόλοιπη διάρκεια της εκτέλεσης π.χ. ιδιότητες τύπου «τερματισμός υπολογισμού» και «αδιέξοδο» αντιστοιχούν σε σταθερά κατηγορήματα Ασταθές κατηγόρημα: ένα κατηγόρημα το οποίο ίσως ισχύσει προσωρινά, μια ή περισσότερες φορές, κατά τη διάρκεια της εκτέλεσης π.χ. η ιδιότητα «το άθροισμα των μεταβλητών x+y έχει τη τιμή 10» αντιστοιχεί σε ασταθές κατηγόρημα Κατανεμημένα Συστήματα 45 lalis@inf.uth.gr

Καταγεγραμμένη συνεπής κατάσταση και αποτίμηση κατηγορημάτων Η αποτίμηση σταθερών κατηγορημάτων μπορεί να γίνει με βάση συνεπείς καθολικές καταστάσεις S που είναι πιθανές ενδιάμεσες καταστάσεις ανάμεσα στις πραγματικές καταστάσεις Sbeg και Send Αν Φ σταθερό κατηγόρημα, τότε ισχύει Φ(S) Φ(Send) Φ(S) Φ(Sbeg) Αν ένα σταθερό κατηγόρημα είναι αληθές με βάση την συνεπή καθολική κατάσταση S τότε (θα) είναι αληθές (για πάντα) και στη πραγματική εκτέλεση Αυτό δεν ισχύει για τα ασταθή κατηγορήματα! Κατανεμημένα Συστήματα 46 lalis@inf.uth.gr

x:=3 x:=4 x:=5 P1 e 1.1 e 1.2 e 1.3 e 1.4 e 1.5 e 1.6 m1 P2 m2 e 2.1 y:=6 e 2.2 e 2.3 e 2.4 y:=4 e 2.5 y:=2 K1: x=y K2: y-x=2 Κατανεμημένα Συστήματα 47 lalis@inf.uth.gr

S00 S10 S01 S11 S02 Κ2 ισχύει S21 S12 S03 S31 S22 S13 S41 S32 S23 πραγματική εκτέλεση S42 S33 S43 Κ1 ισχύει S53 S44 S63 S54 S45 S64 S55 S65 Κατανεμημένα Συστήματα 48 lalis@inf.uth.gr

Αποτίμηση ασταθών κατηγορημάτων possibly(φ): υπάρχει τουλάχιστον μια συνεπής εκτέλεση που περνάει από τουλάχιστον μια (συνεπή) κατάσταση S όπου ισχύει Φ(S) definitely(φ): κάθε συνεπής εκτέλεση περνάει από τουλάχιστον μια κατάσταση S όπου ισχύει Φ(S) Αν για έστω μια συνεπή καθολική κατάσταση S δείξουμε ότι Φ(S), τότε δείξαμε ότι ισχύει possibly(φ) Για να δείξουμε ότι possibly(φ) πρέπει να δείξουμε ότι για κάθε δυνατή συνεπή κατάσταση S ισχύει Φ(S), ότι δηλαδή καμία συνεπής εκτέλεση δεν περνάει από μια κατάσταση S για την οποία να ισχύει Φ(S) possibly(φ) definitely( Φ) δεν ισχύει το αντίστροφο Κατανεμημένα Συστήματα 49 lalis@inf.uth.gr

Κατασκευή πλέγματος καταστάσεων Βλέπε παθητική παρακολούθηση με ειδοποιήσεις και κατασκευή συνεπών εκτελέσεων Ο παρατηρητής φτιάχνει την αρχική καθολική κατάσταση Sinit (επίπεδο 0), με βάση τις αρχικές καταστάσεις των διεργασιών Με βάση μια δεδομένη κατάσταση S σε επίπεδο L, κατασκευάζονται όλες οι συνεπείς καταστάσεις του επιπέδου L+1 που είναι εφικτές από την S Πιο συγκεκριμένα: αν S S 1 S i S N, και υπάρχει συνεπής κατάσταση S' i S i e, τότε σχημάτισε την κατάσταση S' S 1 S' i S N Κατανεμημένα Συστήματα 50 lalis@inf.uth.gr

Υπολογίζοντας το possibly(φ) Αρχίζοντας από την κατάσταση Sinit, και καθώς λαμβάνει ειδοποιήσεις για τα διάφορα γεγονότα, ο παρακολουθητής κατασκευάζει σταδιακά το πλέγμα των συνεπών καθολικών καταστάσεων Για κάθε συνεπή καθολική κατάσταση S που κατασκευάζεται, ελέγχεται κατά πόσο ισχύει Φ(S) Αν βρεθεί μια συνεπής καθολική κατάσταση S για την οποία να ισχύει Φ(S), τότε ισχύει possibly(φ) και η διαδικασία τερματίζεται Διαφορετικά, με βάση τις καταστάσεις του τρέχοντος επιπέδου, φτιάχνονται όλες οι συνεπείς καταστάσεις του επομένου επιπέδου, και η διαδικασία συνεχίζεται Κατανεμημένα Συστήματα 51 lalis@inf.uth.gr

Init: L=0; states={sinit}; while (1) { /* test states of level L */ if (Ε S in states: Φ(S)) { return(true); } if (end of execution) { return(false); } } /* construct consistent states of level L+1 */ L=L+1; states'=states; states={s': S in states' and level(s')=l+1 and reach(s',s) and consistent(s')}; Κατανεμημένα Συστήματα 52 lalis@inf.uth.gr

Υπολογίζοντας το definitely(φ) Αρχίζοντας από την κατάσταση Sinit, και καθώς λαμβάνει ειδοποιήσεις για τα διάφορα γεγονότα, ο παρακολουθητής κατασκευάζει σταδιακά το πλέγμα των συνεπών καθολικών καταστάσεων Για κάθε συνεπή καθολική κατάσταση S που κατασκευάζεται, ελέγχεται κατά πόσο ισχύει Φ(S), οπότε η συγκεκριμένη κατάσταση διαγράφεται Οι καταστάσεις που απομένουν στο τρέχον επίπεδο χρησιμοποιούνται για να κατασκευαστούν οι καταστάσεις του επόμενου επιπέδου Αν σε κάποιο επίπεδο δεν απομείνει καμία κατάσταση, τότε ισχύει definitely(φ) και η διαδικασία τερματίζεται Κατανεμημένα Συστήματα 53 lalis@inf.uth.gr

Init: L=0; states={sinit}; while (1) { /* test states of level L */ states' = states - {S: S in states and Φ(S)}; if (states' == {}) { return(true); } if (end of execution) { return(false); } } /* construct consistent states of level L+1 */ L=L+1; states={s': S in states' and level(s')=l+1 and reach(s',s) and consistent(s')}; Κατανεμημένα Συστήματα 54 lalis@inf.uth.gr

Βελτιστοποίηση με φυσικά ρολόγια Οι αλγόριθμοι είναι της τάξης Ο(#S), όπου #S το πλήθος των καταστάσεων που δημιουργούνται Το #S είναι της τάξης Ο(k Ν ), όπου k ο μέγιστος αριθμός των τοπικών γεγονότων σε οποιαδήποτε που είναι ανεξάρτητα από άλλα απομακρυσμένα γεγονότα, και Ν ο αριθμός των διεργασιών Το k μπορεί να ελαχιστοποιηθεί αν (μαζί με τις λογικές) χρησιμοποιηθούν και φυσικές χρονοσφραγίδες Ακόμα και αν δύο γεγονότα είναι λογικά ανεξάρτητα μεταξύ τους, μπορεί να διαταχθούν, με βάση τις αντίστοιχες φυσικές χρονοσφραγίδες τους ή/και τον χρόνο παραλαβής τους (αν γνωρίζουμε το Tmax) Κατανεμημένα Συστήματα 55 lalis@inf.uth.gr

x=3 x=4 x=5 P1 e 1.1 e 1.2 e 1.3 e 1.4 e 1.5 e 1.6 m1 P2 e 2.1 y=6 m2 e 2.2 e 2.3 e 2.4 e 2.5 y=4 y=2 Κατανεμημένα Συστήματα 56 lalis@inf.uth.gr

S00 S10 S01 S11 S02 S21 S12 S03 S31 S22 S13 S41 S32 S23 αν γνωρίζουμε ότι το e 2.1 έλαβε χώρα μετά το e 1.1 πραγματική εκτέλεση S42 S33 S43 S53 S44 S63 S54 S45 S64 S55 αν γνωρίζουμε ότι το e 2.4 έλαβε χώρα μετά το e 1.5 S65 Κατανεμημένα Συστήματα 57 lalis@inf.uth.gr

Ακριβής παρατήρηση με φυσικά ρολόγια Έστω ότι οι διεργασίες διαθέτουν φυσικά ρολόγια που είναι συγχρονισμένα με πολύ μεγάλη ακρίβεια Μπορεί να κατασκευαστεί η πραγματική εκτέλεση Μπορούμε να βγάλουμε ακριβή συμπεράσματα αλλά μόνο για την συγκεκριμένη εκτέλεση Δεν μπορεί να κατασκευαστεί το ευρύτερο πλέγμα των συνεπών καθολικών καταστάσεων Δεν μπορούμε να βγάλουμε κάποια συμπεράσματα για εναλλακτικές συνεπείς εκτελέσεις Κατανεμημένα Συστήματα 58 lalis@inf.uth.gr